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)