function test_getAverageValue() { $tr = new tx_caretaker_TestResultRange(500, 1000); $tr->addResult(new tx_caretaker_TestResult(500, tx_caretaker_Constants::state_ok, 10, '')); $tr->addResult(new tx_caretaker_TestResult(750, tx_caretaker_Constants::state_ok, 20, '')); $tr->addResult(new tx_caretaker_TestResult(1000, tx_caretaker_Constants::state_ok, 20, '')); $this->assertEquals($tr->getAverageValue(500, 1000), 15, 'average value fails'); $tr = new tx_caretaker_TestResultRange(500, 1000); $tr->addResult(new tx_caretaker_TestResult(500, tx_caretaker_Constants::state_ok, 10, '')); $tr->addResult(new tx_caretaker_TestResult(750, tx_caretaker_Constants::state_ok, 20, '')); $this->assertEquals($tr->getAverageValue(), 10, 'average value fails'); $tr = new tx_caretaker_TestResultRange(500, 1000); $tr->addResult(new tx_caretaker_TestResult(800, tx_caretaker_Constants::state_ok, 10, '')); $tr->addResult(new tx_caretaker_TestResult(900, tx_caretaker_Constants::state_ok, 20, '')); $tr->addResult(new tx_caretaker_TestResult(1000, tx_caretaker_Constants::state_ok, 20, '')); $this->assertEquals($tr->getAverageValue(), 15, 'average value fails'); $tr = new tx_caretaker_TestResultRange(500, 1000); $tr->addResult(new tx_caretaker_TestResult(500, tx_caretaker_Constants::state_ok, 10, '')); $tr->addResult(new tx_caretaker_TestResult(900, tx_caretaker_Constants::state_ok, 20, '')); $tr->addResult(new tx_caretaker_TestResult(1000, tx_caretaker_Constants::state_ok, 20, '')); $this->assertEquals($tr->getAverageValue(), 12, 'average value fails'); $tr = new tx_caretaker_TestResultRange(500, 1000); $tr->addResult(new tx_caretaker_TestResult(750, tx_caretaker_Constants::state_ok, 10, '')); $this->assertEquals($tr->getAverageValue(), 0, 'average value fails'); }
/** * Get the ResultRange for the given Instance Test and the timerange * * @param tx_caretaker_TestNode $testNode * @param integer $start_timestamp * @param integer $stop_timestamp * @param boolean $graph By default the result range is created for the graph, so the last result is added again at the end * @return tx_caretaker_TestResultRange */ public function getRangeByNode(tx_caretaker_TestNode $testNode, $start_timestamp, $stop_timestamp, $graph = true) { $testUID = $testNode->getUid(); $instanceUID = $testNode->getInstance()->getUid(); $result_range = new tx_caretaker_TestResultRange($start_timestamp, $stop_timestamp); $base_condition = 'test_uid=' . $testUID . ' AND instance_uid=' . $instanceUID . ' '; $GLOBALS['TYPO3_DB']->store_lastBuiltQuery = TRUE; $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tx_caretaker_testresult', $base_condition . 'AND tstamp >=' . $start_timestamp . ' AND tstamp <=' . $stop_timestamp, '', 'tstamp ASC'); $last = 0; while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { $result = $this->dbrow2instance($row); $result_range->addResult($result); } // add first value if needed $first = $result_range->getFirst(); if (!$first || $first && $first->getTstamp() > $start_timestamp) { $GLOBALS['TYPO3_DB']->store_lastBuiltQuery = TRUE; $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tx_caretaker_testresult', $base_condition . ' AND tstamp <' . $start_timestamp, '', 'tstamp DESC', 1); if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { $row['tstamp'] = $start_timestamp; $result = $this->dbrow2instance($row); $result_range->addResult($result, 'first'); } } // add last value if needed $last = $result_range->getLast(); if ($last && $last->getTstamp() < $stop_timestamp) { if ($graph) { $real_last = new tx_caretaker_TestResult($stop_timestamp, $last->getState(), $last->getValue(), $last->getMessage()->getText(), $last->getSubMessages()); $result_range->addResult($real_last); } } return $result_range; }