def main(): base_dir, dry_run = process_input() for rec, pth in get_all_records(base_dir): print("\n\n******************\n") print("processing:", rec.oil_id, rec.metadata.name) fixer = FixAPI(rec) flag, msg = fixer.check() if flag is True: print(msg) print("Cleaning up!") fixer.cleanup() print("API is now:", rec.metadata.API) if not dry_run: print("Saving out:", pth) rec.to_file(pth) else: print("Nothing saved") elif flag is False: print(msg) print("It's a:", rec.metadata.product_type) print("Densities are:", rec.sub_samples[0].physical_properties.densities) else: print(msg)
def test_non_crude_one_density_far(): # density at too far a temp to compute API oil = no_api_with_one_density_13C() oil.sub_samples[0].physical_properties.densities[0].ref_temp.value = 0.0 fixer = FixAPI(oil) fixer.cleanup() assert oil.metadata.API is None
def test_non_crude_one_density_close(): oil = no_api_with_one_density_13C() fixer = FixAPI(oil) fixer.cleanup() assert isclose(oil.metadata.API, 30.06, rel_tol=1e4)
def test_add_density(): oil = no_api_with_density() # before adding: assert oil.metadata.API is None fixer = FixAPI(oil) fixer.cleanup() assert isclose(oil.metadata.API, 30.06, rel_tol=1e4)
def test_non_crude_two_densities_not_straddle_60(): oil = no_api_with_density() oil.metadata.product_type = "Refined Product NOS" oil.sub_samples[0].physical_properties.densities[0].ref_temp.value = 0.0 oil.sub_samples[0].physical_properties.densities[0].ref_temp.unit = 'C' oil.sub_samples[0].physical_properties.densities[1].ref_temp.value = 10.0 oil.sub_samples[0].physical_properties.densities[1].ref_temp.unit = 'C' fixer = FixAPI(oil) fixer.cleanup() assert oil.metadata.API is None