def test_has_initial_state(self): # only initial states study = RockPy3.core.study.Study() s = study.add_sample(name='test') mean = RockPy3.Study.add_sample(name='mean') m0 = s.add_simulation(mtype='hysteresis', noise=5) m1 = s.add_simulation(mtype='hysteresis', noise=5) mi = m1.set_initial_state(mobj=m0) self.assertFalse(s.measurements[0].has_initial_state) self.assertTrue(s.measurements[1].has_initial_state)
def test_get_series(self): study = RockPy3.core.study.Study() s = study.add_sample(name='test') m0 = s.add_simulation(mtype='hysteresis', noise=5, series=[('s1', 1, 'A'), ('s2', 1, 'b')]) m1 = s.add_simulation(mtype='hysteresis', noise=5, series=[('s1', 3, 'A'), ('s2', 4, 'b')]) self.assertEqual([1], [s.sval for s in m0.get_series(stype='s1')]) self.assertEqual([3], [s.sval for s in m1.get_series(stype='s1')]) self.assertEqual(['s1', 's2'], [s.stype for s in m0.get_series(sval=1)]) self.assertEqual(['s1'], [s.stype for s in m1.get_series(sval=3)]) self.assertEqual(['s1'], [s.stype for s in m1.get_series(series=[('s1', 3), ('s2', 1)])])
def test_from_measurements(self): # 1. check that if there is no noise the data is the same study = RockPy3.core.study.Study() s = study.add_sample(name='test') m0 = s.add_simulation(mtype='hysteresis') # simulation with no noise m1 = s.add_simulation(mtype='hysteresis') # simulation with no noise mean = RockPy3.Study.add_sample(name='mean') mm = RockPy3.Packages.Mag.Measurements.hysteresis.Hysteresis.from_measurements_create_mean(mean, s.measurements) for other in s.measurements: self.assertTrue(all(mm.data['down_field']['mag'].v == other.data['down_field']['mag'].v)) self.assertTrue(all(mm.data['up_field']['mag'].v == other.data['up_field']['mag'].v))
def test_set_initial_state(self): # only initial states study = RockPy3.core.study.Study() s = study.add_sample(name='test') mean = RockPy3.Study.add_sample(name='mean') m0 = s.add_simulation(mtype='hysteresis', noise=5) m1 = s.add_simulation(mtype='hysteresis', noise=5) mi = m1.set_initial_state(mobj=m0) # no deepcopy -> m0 == mi self.assertEqual(m0, mi) self.assertEqual([m0, m1], s.get_measurement(mtype='hysteresis')) self.assertEqual(2, len(s.measurements)) self.assertFalse(s.measurements[0].has_initial_state) self.assertTrue(s.measurements[1].has_initial_state)
def test_set_recipe(self): study = RockPy3.core.study.Study() s = study.add_sample(name='test') m0 = s.add_simulation(mtype='hysteresis') m0.result_bc(no_points=8, check=False) print(m0.results) # direct self.assertEqual('direct', m0.result_category('mrs')) m0.set_recipe(res='mrs', recipe='nonlinear') self.assertEqual('default'.upper(), m0.result_recipe['mrs']) # direct_recipe self.assertEqual('direct_recipe', m0.result_category('bc')) m0.set_recipe(res='bc', recipe='nonlinear') self.assertEqual('nonlinear'.upper(), m0.result_recipe['bc']) print(m0.results) # indirect # indirect_recipe self.assertEqual('indirect_recipe', m0.result_category('hf_sus')) m0.set_recipe(res='hf_sus', recipe='app2sat') self.assertEqual('app2sat'.upper(), m0.result_recipe['ms']) self.assertEqual('app2sat'.upper(), m0.result_recipe['hf_sus'])