]> SALOME platform Git repositories - modules/yacs.git/blob - src/engine/Test/engineIntegrationTest.hxx
Salome HOME
edac72be8ef02e257e38a4ca494229e8edfbcb81
[modules/yacs.git] / src / engine / Test / engineIntegrationTest.hxx
1 #ifndef __ENGINEINTEGRATIONTEST_HXX__
2 #define __ENGINEINTEGRATIONTEST_HXX__
3
4 #include <cppunit/extensions/HelperMacros.h>
5
6 namespace YACS
7 {
8   namespace ENGINE
9   {
10     class Task;
11
12     class EngineIntegrationTest : public CppUnit::TestFixture
13     {
14       CPPUNIT_TEST_SUITE( EngineIntegrationTest );
15       CPPUNIT_TEST( testBloc1 );
16       CPPUNIT_TEST( testBloc2 );
17       CPPUNIT_TEST( testBloc3 );
18       CPPUNIT_TEST( testForLoop1 );
19       CPPUNIT_TEST( testForLoop2 );
20       CPPUNIT_TEST( testForLoop3 );
21       CPPUNIT_TEST( testForLoop4 );
22       CPPUNIT_TEST( testForLoop5 );
23       CPPUNIT_TEST( testWhileLoop1 );
24       CPPUNIT_TEST( testWhileLoop2 );
25       CPPUNIT_TEST( testSwitch );
26       CPPUNIT_TEST( testSwitch2 );
27       CPPUNIT_TEST( testSwitch3 );
28       CPPUNIT_TEST( testEdInitOnLoops );
29       CPPUNIT_TEST( testLinkUpdate1 );
30       CPPUNIT_TEST( testLinkUpdate1DS );
31       CPPUNIT_TEST( testLinkUpdate2 );
32       CPPUNIT_TEST( testLinkUpdate2DS );
33       CPPUNIT_TEST( testInterLoopDFLink );
34       CPPUNIT_TEST( deathTestForLinks );
35       CPPUNIT_TEST( testForEachLoop1 );
36       CPPUNIT_TEST( testForEachLoop2 );
37       CPPUNIT_TEST( testForEachLoop3 );
38       CPPUNIT_TEST( testForEachLoop4 );
39       CPPUNIT_TEST( testForEachLoop5 );
40       CPPUNIT_TEST( testForOptimizerLoop1 );
41       CPPUNIT_TEST( testForOptimizerLoop2 );
42       CPPUNIT_TEST( testForDeployment1 );
43       CPPUNIT_TEST( testForDeployment2 );
44       CPPUNIT_TEST( testForCheckConsistency1 );
45       CPPUNIT_TEST( testForCheckConsistency2 );
46       CPPUNIT_TEST_SUITE_END();
47     public:
48       void setUp();
49       void tearDown();
50       void testBloc1();
51       void testBloc2();
52       void testBloc3();
53       void testSwitch();
54       void testSwitch2();
55       void testSwitch3();
56       void testForLoop1();
57       void testForLoop2();
58       void testForLoop3();
59       void testForLoop4();
60       void testForLoop5();
61       void testWhileLoop1();
62       void testWhileLoop2();
63       void testEdInitOnLoops();
64       void testLinkUpdate1();
65       void testLinkUpdate1DS();
66       void testLinkUpdate2();
67       void testLinkUpdate2DS();
68       void testInterLoopDFLink();
69       void deathTestForLinks();
70       void testForEachLoop1();
71       void testForEachLoop2();
72       void testForEachLoop3();
73       void testForEachLoop4();
74       void testForEachLoop5();
75       void testForOptimizerLoop1();
76       void testForOptimizerLoop2();
77       void testForDeployment1();
78       void testForDeployment2();
79       void testForCheckConsistency1();
80       void testForCheckConsistency2();
81     protected:
82       template<class T>
83       static void checkSetsEqual(const std::set<T>& setToTest1, const std::set<T>& setToTest2);
84       template<class T>
85       static void checkSetsNotEqual(const std::set<T *>& setToTest1, const std::set<T *>&setToTest2);
86     };
87
88     template<class T>
89     void EngineIntegrationTest::checkSetsEqual(const std::set<T>& setToTest1, const std::set<T>& setToTest2)
90     {
91       typename std::set<T>::iterator iter1=setToTest1.begin();
92       typename std::set<T>::iterator iter2=setToTest2.begin();
93       CPPUNIT_ASSERT_EQUAL_MESSAGE("Sets can't be equal : size different", (int)setToTest1.size(), (int)setToTest2.size());
94       for(;iter1!=setToTest1.end();iter1++,iter2++)
95         CPPUNIT_ASSERT_MESSAGE("Sets can't be equal : value different", *iter1==*iter2);
96     }
97     
98     template<class T>
99     void EngineIntegrationTest::checkSetsNotEqual(const std::set<T *>& setToTest1, const std::set<T *>&setToTest2)
100     {
101       typename std::set<T *>::iterator iter1=setToTest1.begin();
102       CPPUNIT_ASSERT_EQUAL_MESSAGE("Sets can't be equal : size different", (int)setToTest1.size(), (int)setToTest2.size());
103       for(;iter1!=setToTest1.end();iter1++)
104         CPPUNIT_ASSERT_MESSAGE("Elements is in set : not expected.",setToTest2.find(*iter1)==setToTest2.end());
105     }
106   }
107 }
108
109 #endif