def run_and_assert_serialization_succeeds(self, obj): obj.run(self.job_manager, wait=True) attrs_to_ignore = SIM_GROUP_IGNORE + ["simulations"] assert_roundtrip_identical(obj, ignore=attrs_to_ignore) assert_round_trip_to_file_identical(self.filepath, obj, ignore=attrs_to_ignore)
def test_lazy_loading_simulation(self): # Copy cadet file, so the lazy copy can find it and be run too: copyfile(self.result_filepath, self.sim.cadet_filepath) try: object_to_save = LazyLoadingSimulation.from_simulation(self.sim) self.assertIsNotNone(object_to_save.output) assert_roundtrip_identical(object_to_save) finally: os.remove(self.sim.cadet_filepath)
def test_create_save_load_sim_grid_unit_scalar(self): cp = make_sample_simulation2() diff = (SingleParamSimulationDiff("method.method_steps[0].flow_rate", UnitScalar(5, units=cm_per_hr)), ) obj = SimulationGroup(center_point_simulation=cp, name="foo", simulation_diffs=[diff]) assert_roundtrip_identical(obj, ignore=SIM_GROUP_IGNORE) assert_round_trip_to_file_identical(self.filepath, obj, ignore=SIM_GROUP_IGNORE)
def test_task(self): project = KromatographyProject(study=self.study) object_to_save = KromatographyTask(project=project) # Ignore datasource since managed by the containing Application object # Ignore sim group cp because not serialized. assert_roundtrip_identical(object_to_save, ignore=self.ignore) serial_data, array_collection = serialize(object_to_save) new_object, _ = deserialize(serial_data, array_collection) # Until it is embedded into the KromApplication, the datasource is not # set: self.assertIsNone(new_object.project.datasource) self.assertIsNone(new_object.project.study.datasource)
def test_float(self): val = 2. assert_roundtrip_identical(val) val = 1.e-3 assert_roundtrip_identical(val)
def test_create_save_load_monte_carlo_sim_group(self): obj = make_sample_mc_simulation_group() assert_roundtrip_identical(obj, ignore=SIM_GROUP_IGNORE) assert_round_trip_to_file_identical(self.filepath, obj, ignore=SIM_GROUP_IGNORE)
def test_product(self): object_to_save = self.study.product assert_roundtrip_identical(object_to_save)
def test_unitarray(self): arr = np.array([1, 2, 3, 4]) a = UnitArray(arr, units="m") assert_roundtrip_identical(a)
def test_ParameterScanDescription(self): scan_data = {"name": "binding_model.sma_nu[2]", "low": 4, "high": 6, "num_values": 5, "spacing": "Linear"} p = ParameterScanDescription(**scan_data) assert_roundtrip_identical(p)
def test_unitscalar(self): a = UnitScalar(1., units="m") assert_roundtrip_identical(a)
def test_unitscalar_custom_units(self): a = UnitScalar(1., units=extinction_coefficient_unit) assert_roundtrip_identical(a) a = UnitScalar(1., units=absorption_unit) assert_roundtrip_identical(a)
def test_uuid(self): val = uuid4() assert_roundtrip_identical(val)
def test_array(self): arr = np.array([1, 2, 3, 4]) assert_roundtrip_identical(arr)
def test_int(self): val = 23746523 assert_roundtrip_identical(val)
def test_study(self): object_to_save = self.study assert_roundtrip_identical(object_to_save, ignore=self.ignore)
def test_str(self): val = "this is a random string to store" assert_roundtrip_identical(val)
def test_binding_parameters(self): object_to_save = self.sim.binding_model.sma_nu assert_roundtrip_identical(object_to_save)
def test_binding_model_langmuir_ph(self): object_to_save = make_sample_langmuir_binding_model(ph_dependence=True) assert_roundtrip_identical(object_to_save)
def test_binding_model_langmuir(self): object_to_save = make_sample_langmuir_binding_model() assert_roundtrip_identical(object_to_save)
def test_simulation(self): assert_roundtrip_identical(self.sim)