Loading src/TNL/Experimental/Arithmetics/UnitTests/QuadTest.cpp +159 −5 Original line number Diff line number Diff line Loading @@ -6,22 +6,176 @@ ***************************************************/ #ifdef HAVE_GTEST #include "gtest/gtest.h" #include <gtest/gtest.h> #endif #include <Arithmetics/QuadDouble.h> #include <TNL/Experimental/Arithmetics/MultiPrecision.h> #include <TNL/Experimental/Arithmetics/Quad.h> #ifdef HAVE_GTEST // TODO - GTests for QuadDouble implementation TEST( QuadTest, test_1 ) { Quad<double> qd (0.010203040506); MultiPrecision mp (0.010203040506); EXPECT_EQ (mp , qd); } TEST( QuadTest, test_2 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1+=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1+=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_3 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1-=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1-=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_4 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1*=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1*=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_5 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1/=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1/=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_6 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd1+qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp1+mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_7 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd1-qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp1-mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_8 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd1*qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp1*mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_9 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd2*qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp2*mp1); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_10 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1==qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1==mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_11 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1!=qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1!=mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_12 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1<qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1<mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_13 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1>qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1>mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_14 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1>=qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1>=mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_15 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1<=qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1<=mp2); EXPECT_EQ (MPres , QDres); } #endif /*Main function runs the tests*/ #include "GtestMissingError.h" int main( int argc, char* argv[] ) { #ifdef HAVE_GTEST ::testing::InitGoogleTest( &argc, argv ); return RUN_ALL_TESTS(); #else return EXIT_FAILURE; throw GtestMissingError(); #endif } No newline at end of file Loading
src/TNL/Experimental/Arithmetics/UnitTests/QuadTest.cpp +159 −5 Original line number Diff line number Diff line Loading @@ -6,22 +6,176 @@ ***************************************************/ #ifdef HAVE_GTEST #include "gtest/gtest.h" #include <gtest/gtest.h> #endif #include <Arithmetics/QuadDouble.h> #include <TNL/Experimental/Arithmetics/MultiPrecision.h> #include <TNL/Experimental/Arithmetics/Quad.h> #ifdef HAVE_GTEST // TODO - GTests for QuadDouble implementation TEST( QuadTest, test_1 ) { Quad<double> qd (0.010203040506); MultiPrecision mp (0.010203040506); EXPECT_EQ (mp , qd); } TEST( QuadTest, test_2 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1+=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1+=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_3 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1-=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1-=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_4 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1*=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1*=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_5 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (qd1/=qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (mp1/=mp1); EXPECT_EQ (mp2 , qd2); } TEST( QuadTest, test_6 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd1+qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp1+mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_7 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd1-qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp1-mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_8 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd1*qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp1*mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_9 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); Quad<double> QDres (qd2*qd1); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); MultiPrecision MPres (mp2*mp1); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_10 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1==qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1==mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_11 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1!=qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1!=mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_12 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1<qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1<mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_13 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1>qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1>mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_14 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1>=qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1>=mp2); EXPECT_EQ (MPres , QDres); } TEST( QuadTest, test_15 ) { Quad<double> qd1 (0.010203040506); Quad<double> qd2 (4.102030405060); bool QDres (qd1<=qd2); MultiPrecision mp1 (0.010203040506); MultiPrecision mp2 (4.102030405060); bool MPres (mp1<=mp2); EXPECT_EQ (MPres , QDres); } #endif /*Main function runs the tests*/ #include "GtestMissingError.h" int main( int argc, char* argv[] ) { #ifdef HAVE_GTEST ::testing::InitGoogleTest( &argc, argv ); return RUN_ALL_TESTS(); #else return EXIT_FAILURE; throw GtestMissingError(); #endif } No newline at end of file