Exemple #1
0
 def test_incorrect_sizes(self):
     with self.assertRaises(ValueError) as context:
         dlw.DLWSubject(INCORRECT_SIZE_TEST, O18_DELTAS_TEST,
                        SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                        MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                        SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
         self.assertTrue('Arrays not correct size' in context.exception)
Exemple #2
0
 def test_o18_ratios_to_deltas(self):
     test_subject = dlw.DLWSubject(D_PPM_TEST, O18_PPM_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST,
                                   False)
     self.assertTrue(np.allclose(O18_DELTAS_TEST, test_subject.o18_deltas))
Exemple #3
0
 def test_calculate_mol_masses(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(20.0000104, test_subject.mol_masses[0])
     self.assertAlmostEqual(19.90031152, test_subject.mol_masses[1])
Exemple #4
0
 def test_average_turnover_2pt(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(0.00588674101, test_subject.kd_per_hr)
     self.assertAlmostEqual(0.006751644, test_subject.ko_per_hr)
Exemple #5
0
 def test_incorrect_ratios(self):
     with self.assertRaises(ValueError) as context:
         dlw.DLWSubject(INCORRECT_RATIOS_TEST, O18_DELTAS_TEST,
                        SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                        MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                        SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
         self.assertTrue(
             'Isotope ratios do not conform to pattern background < final < plateau'
             in context.exception)
Exemple #6
0
 def test_co2_to_tee(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(1725.261530650,
                            test_subject.schoeller['tee_plat_kcal_day'])
     self.assertAlmostEqual(1676.963961800,
                            test_subject.schoeller['tee_int_kcal_day'])
Exemple #7
0
 def test_tee_calcs(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(7.0164172162,
                            test_subject.schoeller['tee_int_mj_day'])
     self.assertAlmostEqual(7.2184942442,
                            test_subject.schoeller['tee_plat_mj_day'])
Exemple #8
0
 def test_calc_racette_co2(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST,
                                   O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST,
                                   DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST,
                                   DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST,
                                   SUBJECT_ID_TEST,
                                   pop_avg_rdil=1.02)
     self.assertAlmostEqual(0.572387168, test_subject.racette['co2_plat'])
Exemple #9
0
 def test_calc_speakman2020adult_co2(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST,
                                   O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST,
                                   DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST,
                                   DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST,
                                   SUBJECT_ID_TEST,
                                   pop_avg_rdil=1.02)
     self.assertAlmostEqual(0.5282454657,
                            test_subject.speakman2020['co2_plat'])
Exemple #10
0
 def test_calculate_speakman1997(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST,
                                   O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST,
                                   DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST,
                                   DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST,
                                   SUBJECT_ID_TEST,
                                   pop_avg_rdil=1.02)
     self.assertAlmostEqual(0.559617317,
                            test_subject.speakman1997['co2_int'])
Exemple #11
0
 def test_pop_avg_rdil_incorporation(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST,
                                   O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST,
                                   DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST,
                                   DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST,
                                   SUBJECT_ID_TEST,
                                   pop_avg_rdil=POP_AVG_RDIL_TEST)
     self.assertAlmostEqual(0.50729412,
                            test_subject.speakman1997['co2_int'])
     self.assertAlmostEqual(0.53186464, test_subject.racette['co2_int'])
Exemple #12
0
 def test_DLWsubject_inline_calcs(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(1.146923975, test_subject.ko_kd_ratio)
     self.assertAlmostEqual(1.04211133, test_subject.dil_space_ratio)
     self.assertAlmostEqual(32.02403252, test_subject.total_body_water_d_kg)
     self.assertAlmostEqual(31.75599874, test_subject.total_body_water_o_kg)
     self.assertAlmostEqual(31.89001563,
                            test_subject.total_body_water_ave_kg)
     self.assertAlmostEqual(43.68495292, test_subject.fat_free_mass_kg)
     self.assertAlmostEqual(15.93504708, test_subject.fat_mass_kg)
     self.assertAlmostEqual(26.72768715, test_subject.body_fat_percent)
Exemple #13
0
 def test_turnover_exponential(self):
     # Note that this is the only test with values not based on the excel spreadsheet, since it does not do
     #  an exponential fit.  This functionality was tested by comparing with the results of an earlier version
     #  of the program.
     test_subject = dlw.DLWSubject(D_DELTAS_TEST,
                                   O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST,
                                   DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST,
                                   DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST,
                                   SUBJECT_ID_TEST,
                                   expo_calc=True)
     self.assertAlmostEqual(0.005884750, test_subject.kd_per_hr)
     self.assertAlmostEqual(0.006748965, test_subject.ko_per_hr)
Exemple #14
0
 def test_change_units_co2(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(13.03150474,
                            test_subject.schoeller['co2_int_mol_day'])
     self.assertAlmostEqual(12.17033947,
                            test_subject.schoeller['co2_int_L_hr'])
     self.assertAlmostEqual(292.0881473,
                            test_subject.schoeller['co2_int_L_day'])
     self.assertAlmostEqual(13.4068199,
                            test_subject.schoeller['co2_plat_mol_day'])
     self.assertAlmostEqual(12.52085255,
                            test_subject.schoeller['co2_plat_L_hr'])
     self.assertAlmostEqual(300.5004613,
                            test_subject.schoeller['co2_plat_L_day'])
Exemple #15
0
 def test_calculate_various_nd(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(1871.02702742, test_subject.nd['plat_a_mol'])
     self.assertAlmostEqual(1837.28529309, test_subject.nd['plat_b_mol'])
     self.assertAlmostEqual(1854.15616026, test_subject.nd['plat_avg_mol'])
     self.assertAlmostEqual(1827.47891022, test_subject.nd['int_a_mol'])
     self.assertAlmostEqual(1783.98809916, test_subject.nd['int_b_mol'])
     self.assertAlmostEqual(1805.73350469, test_subject.nd['int_avg_mol'])
     self.assertAlmostEqual(1841.71633362,
                            test_subject.nd['adj_plat_avg_mol'])
     self.assertAlmostEqual(1793.61855330,
                            test_subject.nd['adj_int_avg_mol'])
     self.assertAlmostEqual(33.3370178578,
                            test_subject.nd['adj_plat_avg_kg'])
     self.assertAlmostEqual(32.4663970504,
                            test_subject.nd['adj_int_avg_kg'])
Exemple #16
0
 def test_calculate_various_no(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(1795.41951937, test_subject.no['plat_a_mol'])
     self.assertAlmostEqual(1761.75197101, test_subject.no['plat_b_mol'])
     self.assertAlmostEqual(1778.58574519, test_subject.no['plat_avg_mol'])
     self.assertAlmostEqual(1747.56869702, test_subject.no['int_a_mol'])
     self.assertAlmostEqual(1703.25659004, test_subject.no['int_b_mol'])
     self.assertAlmostEqual(1725.41264353, test_subject.no['int_avg_mol'])
     self.assertAlmostEqual(1766.65293241,
                            test_subject.no['adj_plat_avg_mol'])
     self.assertAlmostEqual(1713.83657749,
                            test_subject.no['adj_int_avg_mol'])
     self.assertAlmostEqual(31.9782907287,
                            test_subject.no['adj_plat_avg_kg'])
     self.assertAlmostEqual(31.0222587193,
                            test_subject.no['adj_int_avg_kg'])
Exemple #17
0
 def test_save_results_csv(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     test_path = tempfile.NamedTemporaryFile().name
     test_subject.save_results_csv(test_path)
     read_data = np.genfromtxt(test_path,
                               delimiter=',',
                               skip_header=1,
                               dtype=str)
     self.assertEqual('TestSubject', read_data[0])
     self.assertAlmostEqual(test_subject.no['adj_plat_avg_mol'],
                            float(read_data[4]))
     self.assertAlmostEqual(test_subject.body_fat_percent,
                            float(read_data[8]))
     self.assertAlmostEqual(test_subject.speakman2020['tee_int_kcal_day'],
                            float(read_data[11]))
     self.assertAlmostEqual(test_subject.speakman2020['co2_plat_L_day'],
                            float(read_data[14]))
     self.assertAlmostEqual(test_subject.ko_kd_ratio, float(read_data[21]))
Exemple #18
0
 def test_d_deltas_to_ratios(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertTrue(np.allclose(D_RATIOS_TEST, test_subject.d_ratios))
Exemple #19
0
 def test_calculate_schoeller(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(0.542979364, test_subject.schoeller['co2_int'])
Exemple #20
0
 def test_ee_consistency_check(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(-1.12633305388, test_subject.ee_check)
Exemple #21
0
 def test_percent_difference(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(-1.8195460185388, test_subject.d_ratio_percent)
Exemple #22
0
 def test_calc_schoeller_co2(self):
     test_subject = dlw.DLWSubject(D_DELTAS_TEST, O18_DELTAS_TEST,
                                   SAMPLE_DATETIME_TEST, DOSE_WEIGHTS_TEST,
                                   MIXED_DOSE_TEST, DOSE_ENRICHMENTS_TEST,
                                   SUBJECT_WEIGHTS_TEST, SUBJECT_ID_TEST)
     self.assertAlmostEqual(0.558617496, test_subject.schoeller['co2_plat'])