00001
00002
00003 #include <StjTowerEnergyListVariation.h>
00004 #include <StjTowerEnergyList.h>
00005 #include "StjTowerEnergyVariation.h"
00006 #include "StjTowerEnergyVariationEnergy.h"
00007
00008 #include <iostream>
00009 #include <set>
00010 #include <cmath>
00011
00012 #include "StjTowerEnergyListVariationTest.hh"
00013
00014 using namespace std;
00015
00016
00017 CPPUNIT_TEST_SUITE_REGISTRATION( StjTowerEnergyListVariationTest );
00018
00019 void StjTowerEnergyListVariationTest::setUp()
00020 {
00021
00022 }
00023
00024 void StjTowerEnergyListVariationTest::tearDown()
00025 {
00026
00027 }
00028
00029
00030 void StjTowerEnergyListVariationTest::testEnergyPlus5()
00031 {
00032 StjTowerEnergyListVariation* variation = new StjTowerEnergyListVariation;
00033
00034 variation->addVariation(new StjTowerEnergyVariationEnergy(0.05));
00035
00036 StjTowerEnergyList listIn;
00037
00038 StjTowerEnergy energy1;
00039 energy1.energy = 3.0;
00040 listIn.push_back(energy1);
00041
00042 StjTowerEnergy energy2;
00043 energy2.energy = 5.0;
00044 listIn.push_back(energy2);
00045
00046 StjTowerEnergyList listExpected;
00047 energy1.energy *= (1.0 + 0.05);
00048 energy2.energy *= (1.0 + 0.05);
00049 listExpected.push_back(energy1);
00050 listExpected.push_back(energy2);
00051
00052
00053 StjTowerEnergyList listActual = (*variation)(listIn);
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00077
00078 delete variation;
00079 }
00080
00081 void StjTowerEnergyListVariationTest::testEnergyMinus5()
00082 {
00083 StjTowerEnergyListVariation* variation = new StjTowerEnergyListVariation;
00084
00085 variation->addVariation(new StjTowerEnergyVariationEnergy(-0.05));
00086
00087 StjTowerEnergyList listIn;
00088
00089 StjTowerEnergy energy1;
00090 energy1.energy = 3.0;
00091 listIn.push_back(energy1);
00092
00093 StjTowerEnergy energy2;
00094 energy2.energy = 5.0;
00095 listIn.push_back(energy2);
00096
00097 StjTowerEnergyList listExpected;
00098 energy1.energy *= (1.0 - 0.05);
00099 energy2.energy *= (1.0 - 0.05);
00100 listExpected.push_back(energy1);
00101 listExpected.push_back(energy2);
00102
00103
00104 StjTowerEnergyList listActual = (*variation)(listIn);
00105
00106
00107 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00108
00109 delete variation;
00110 }
00111
00112 void StjTowerEnergyListVariationTest::testEnergyPlus10()
00113 {
00114 StjTowerEnergyListVariation* variation = new StjTowerEnergyListVariation;
00115
00116 variation->addVariation(new StjTowerEnergyVariationEnergy(0.1));
00117
00118 StjTowerEnergyList listIn;
00119
00120 StjTowerEnergy energy1;
00121 energy1.energy = 3.0;
00122 listIn.push_back(energy1);
00123
00124 StjTowerEnergy energy2;
00125 energy2.energy = 5.0;
00126 listIn.push_back(energy2);
00127
00128 StjTowerEnergyList listExpected;
00129 energy1.energy *= (1.0 + 0.1);
00130 energy2.energy *= (1.0 + 0.1);
00131 listExpected.push_back(energy1);
00132 listExpected.push_back(energy2);
00133
00134
00135 StjTowerEnergyList listActual = (*variation)(listIn);
00136
00137
00138 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00139
00140 delete variation;
00141 }
00142
00143 void StjTowerEnergyListVariationTest::testEnergyMinus10()
00144 {
00145 StjTowerEnergyListVariation* variation = new StjTowerEnergyListVariation;
00146
00147 variation->addVariation(new StjTowerEnergyVariationEnergy(-0.1));
00148
00149 StjTowerEnergyList listIn;
00150
00151 StjTowerEnergy energy1;
00152 energy1.energy = 3.0;
00153 listIn.push_back(energy1);
00154
00155 StjTowerEnergy energy2;
00156 energy2.energy = 5.0;
00157 listIn.push_back(energy2);
00158
00159 StjTowerEnergyList listExpected;
00160 energy1.energy *= (1.0 - 0.1);
00161 energy2.energy *= (1.0 - 0.1);
00162 listExpected.push_back(energy1);
00163 listExpected.push_back(energy2);
00164
00165
00166 StjTowerEnergyList listActual = (*variation)(listIn);
00167
00168
00169 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00170
00171 delete variation;
00172 }
00173
00174
00175 void StjTowerEnergyListVariationTest::testEnergyNull()
00176 {
00177 StjTowerEnergyListVariation* variation = new StjTowerEnergyListVariation;
00178
00179 StjTowerEnergyList listIn;
00180
00181 StjTowerEnergy energy1;
00182 energy1.energy = 3.0;
00183 listIn.push_back(energy1);
00184
00185 StjTowerEnergy energy2;
00186 energy2.energy = 5.0;
00187 listIn.push_back(energy2);
00188
00189 StjTowerEnergyList listExpected;
00190 listExpected.push_back(energy1);
00191 listExpected.push_back(energy2);
00192
00193
00194 StjTowerEnergyList listActual = (*variation)(listIn);
00195
00196
00197 CPPUNIT_ASSERT_EQUAL( listExpected, listActual );
00198
00199 delete variation;
00200 }