C++ main module for emicrom Package  1.0
EMM_TensorsTest.h
Go to the documentation of this file.
1 #ifndef EMM_TensorsTest_H
2 #define EMM_TensorsTest_H
3 
4 #include "CORE_Test.h"
5 #include "EMM_4Tensors.h"
7 
8 class CORE_Run;
9 
23 class EMM_TensorsTest : public CORE_Test {
24 
26  // ATTRIBUTES
27 
28 
29 public:
30 
31 
32 protected:
33  // METHODS
34 
35  // CONSTRUCTORS
36 
39  EMM_TensorsTest(void);
40 
41 
42 
43  // DESTRUCTORS
44 
45 
48  virtual ~EMM_TensorsTest(void);
49 
50 
51 
52 public:
55  inline static SP::EMM_TensorsTest New() {
56  SP::EMM_TensorsTest p(new EMM_TensorsTest(),EMM_TensorsTest::Delete());
57  p->setThis(p);
58  return p;
59  };
60 
61 
62 
63 
64 
70  tBoolean test(const CORE_Run& runner,const map<tString,tString>& options) const;
71 
72 
73 
74 
75 private:
76 
77 
78  //tensor tests
79  //=============
80 
81  tBoolean initializationTests(const CORE_Run& runner,const map<tString,tString>& options) const;
82  /* \brief test D=(A:B)
83  */
84  tBoolean doubleDotTests(const CORE_Run& runner,const map<tString,tString>& options) const;
85  /* \brief test D=(A:B):C
86  */
87  tBoolean squaredDoubleDotTests(const CORE_Run& runner,const map<tString,tString>& options) const;
88 
89  //vector tests
90  //===========
93  tBoolean doubleDotCrossProductTests(const CORE_Run& runner,const map<tString,tString>& options) const;
96  tBoolean doubleDotProductTests(const CORE_Run& runner,const map<tString,tString>& options) const;
97 
98 
99  //scalar test
100  //============
101  /* \brief test E=(T:phi):psi
102  */
103  tBoolean squaredDoubleDotScalarTests(const CORE_Run& runner,const map<tString,tString>& options) const;
104  /* \brief test E=(T:UxV):phi
105  */
106  tBoolean doubleDotCrossDoubleDotScalarTests(const CORE_Run& runner,const map<tString,tString>& options) const;
107  /* \brief test E=(T:phi):(W:Z)
108  */
109  tBoolean squaredDoubleDotCrossScalarTests(const CORE_Run& runner,const map<tString,tString>& options) const;
110 
111  /* \brief test E=(T:UxV):(W:Z)
112  */
113  tBoolean doubleDotCrossSquaredScalarTests(const CORE_Run& runner,const map<tString,tString>& options) const;
114 
115  //2 Packed Symmetric tensors test
116  tBoolean packedSymmetricTensorsTests(const CORE_Run& runner,const map<tString,tString>& options) const;
117 
120  tBoolean verifySymmetry(const EMM_4Tensors& A) const;
123  tBoolean verifyLeftSymmetry(const EMM_4Tensors& A) const;
126  tBoolean verifyRightSymmetry(const EMM_4Tensors& A) const;
130 
131 
132  /* \brief build A_{pqrs}=p+q+r+s+2
133  */
134  SP::EMM_4SymmetricTensors buildTensorS(const tString& type) const;
135  /* \brief build A_{pqrs}=(p+q+1).(r+s+1)
136  */
137  SP::EMM_4SymmetricTensors buildTensorP(const tString& type) const;
138 
139 };
140 
141 #endif
tBoolean verifyLeftSymmetry(const EMM_4Tensors &A) const
verify A_{pqrs}=A_{qprs}
Definition: EMM_TensorsTest.cpp:181
tBoolean test(const CORE_Run &runner, const map< tString, tString > &options) const
make the test
Definition: EMM_TensorsTest.cpp:20
This class is a Run class for Common package.
Definition: CORE_Run.h:38
SP::EMM_4SymmetricTensors buildTensorS(const tString &type) const
Definition: EMM_TensorsTest.cpp:125
tBoolean doubleDotTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:324
tBoolean initializationTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:274
#define tBoolean
Definition: types.h:139
EMM_TensorsTest(void)
create
Definition: EMM_TensorsTest.cpp:11
tBoolean doubleDotProductTests(const CORE_Run &runner, const map< tString, tString > &options) const
test Z=(A:phi).U
Definition: EMM_TensorsTest.cpp:664
virtual ~EMM_TensorsTest(void)
destroy
Definition: EMM_TensorsTest.cpp:14
tBoolean packedSymmetricTensorsTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:1095
This class is a test class for E-MicromM package.
Definition: EMM_TensorsTest.h:23
SP::EMM_4SymmetricTensors buildTensorP(const tString &type) const
Definition: EMM_TensorsTest.cpp:152
tBoolean squaredDoubleDotCrossScalarTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:1005
static SP::EMM_TensorsTest New()
create a test class
Definition: EMM_TensorsTest.h:55
tBoolean verifyCenterSymmetry(const EMM_4Tensors &A) const
verify A_{pqrs}=A_{rspq}
Definition: EMM_TensorsTest.cpp:239
tBoolean squaredDoubleDotTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:493
SP_OBJECT(EMM_TensorsTest)
#define tString
Definition: types.h:135
This class is a test class for common package.
Definition: CORE_Test.h:18
This class describes a morse array of tensors of 4 order.
Definition: EMM_4Tensors.h:19
tBoolean doubleDotCrossSquaredScalarTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:913
tBoolean doubleDotCrossDoubleDotScalarTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:825
tBoolean verifySymmetry(const EMM_4Tensors &A) const
verify A_{pqrs}=A_{qprs}=A_{pqsr}=A_{rspq}
Definition: EMM_TensorsTest.cpp:268
tBoolean verifyRightSymmetry(const EMM_4Tensors &A) const
verify A_{pqrs}=A_{pqsr}
Definition: EMM_TensorsTest.cpp:210
DEFINE_SPTR(EMM_TensorsTest)
tBoolean squaredDoubleDotScalarTests(const CORE_Run &runner, const map< tString, tString > &options) const
Definition: EMM_TensorsTest.cpp:745
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:141
tBoolean doubleDotCrossProductTests(const CORE_Run &runner, const map< tString, tString > &options) const
test Z=(A:UxV).W
Definition: EMM_TensorsTest.cpp:583