1 //
2 //  ConstantsUnitTest.h
3 //  pb_solvers_code
4 //
5 //  Created by Lisa Felberg on 10/6/15.
6 //  Copyright © 2015 Lisa Felberg. All rights reserved.
7 //
8 
9 #ifndef ConstantsUnitTest_h
10 #define ConstantsUnitTest_h
11 
12 #include "Constants.h"
13 
14 class ConstantsUTest : public ::testing::Test
15 {
16 protected :
17 
18   Constants ConstUTest_;
19 
SetUp()20   virtual void SetUp() {}
TearDown()21   virtual void TearDown() {}
22 };
23 
TEST_F(ConstantsUTest,settingAndCalc)24 TEST_F(ConstantsUTest, settingAndCalc)
25 {
26   EXPECT_NEAR( ConstUTest_.get_kappa(), 0.03030729144, preclim);
27 
28   // check Kappa after changing \( eps_s \)
29   ConstUTest_.set_dielectric_water( 40.0 );
30   EXPECT_NEAR( ConstUTest_.get_kappa(), 0.04232182927, preclim
31               );
32 
33   // check Kappa after changing Salt concentration \( Molar \)
34   ConstUTest_.set_salt_concentration( 0.05 );
35   EXPECT_NEAR( ConstUTest_.get_kappa(), 0.09463448717, preclim);
36 
37   // check Kappa after changing temperature [ Kelvin ]
38   ConstUTest_.set_temp( 298.0 );
39   EXPECT_NEAR( ConstUTest_.get_kappa(), 0.1029979673, preclim);
40   EXPECT_NEAR( ConstUTest_.get_kbt(), 4.11436084E-21, preclim);
41   double iKt = 2.430511175E20; // large number
42   EXPECT_NEAR( ConstUTest_.get_ikbt()/iKt, 1.0, preclim);
43 }
44 
TEST_F(ConstantsUTest,unitConv)45 TEST_F(ConstantsUTest, unitConv)
46 {
47   // check unit conversion
48   EXPECT_NEAR(ConstUTest_.convert_int_to_kcal_mol(1.0)/332.061203,1,preclim);
49   EXPECT_NEAR(ConstUTest_.convert_int_to_jmol(1.0)/1389344.0722,1,preclim);
50 
51   ConstUTest_.set_temp( 298.0 );
52   EXPECT_NEAR(ConstUTest_.convert_int_to_kT(1.0)/560.73826468,1,preclim);
53 
54   EXPECT_NEAR(ConstUTest_.convert_j_to_int(1.0)/4.33448425104667e+17,1,preclim);
55 
56 }
57 
58 #endif /* ConstantsUnitTest_h */
59