00001 #include "SingleVariableTestResult.h"
00002 #include "NullVariable.h"
00003
00004 #include "Sct/LogicErrors.h"
00005 #include "Sct/OutOfRangeError.h"
00006
00007 using namespace Sct;
00008
00009 namespace SctData {
00010
00011 SingleVariableTestResult::SingleVariableTestResult() throw() : m_optima(nChipModule){
00012 }
00013
00014 SingleVariableTestResult::SingleVariableTestResult(const ConfigurationVariable& scanVariable, const unsigned int runNumber, const string& moduleName) throw()
00015 : TestResult(runNumber, moduleName, NullVariable::instance(), scanVariable), m_optima(nChipModule){
00016 }
00017
00018 void SingleVariableTestResult::addScan(unsigned int scanNumber, double testPoint) throw (LogicError) {
00019 if (data.size() != 0) throw InvariantViolatedError("SingleVariableTestResult::addScan - can only contain 1 scan", __FILE__, __LINE__);
00020 TestResult::addScan(scanNumber, testPoint);
00021 }
00022
00023 double SingleVariableTestResult::getOptimum(unsigned i) const throw(LogicError) {
00024 if (i>=nChipModule)
00025 throw OutOfRangeError<unsigned>("SingleVariableTestResult::getOptimum", __FILE__, __LINE__, i,0,nChipModule-1);
00026 return m_optima[i];
00027 }
00028
00029
00030 void SingleVariableTestResult::setOptimum(unsigned int chip, double optimum) throw(Sct::LogicError) {
00031 if (chip>=nChipModule)
00032 throw OutOfRangeError<unsigned>("SingleVariableTestResult::setOptimum", __FILE__, __LINE__,chip,0,nChipModule-1);
00033 m_optima[chip] = optimum;
00034 }
00035 }