def test_merge_files(): # Without time merge df = oo.merge(test_files[3:]) assert df.shape == (56, 24) assert any(math.isnan(x) for x in df['t'].values) # With time merge - exception should be raised because one of the # files is from MinDriver. with pytest.raises(ValueError): df = oo.merge(test_files[3:], mergetime=True) # With time merge odtfiles = [test_file4, test_file5, test_file6, test_file8] df = oo.merge(odtfiles, mergetime=True) assert df.shape == (55, 19) assert min(df['tm'].values) == 1e-12 assert max(df['tm'].values) == 50e-12 assert 0 not in np.diff(df['tm'].values) # monotonic # With time merge, pandas.DataFrames are passed df1 = oo.read(test_file4) df2 = oo.read(test_file8) df = oo.merge([df1, df2], mergetime=True) assert df.shape == (30, 19) assert min(df['tm'].values) == 1e-12 assert max(df['tm'].values) == 30e-12 assert 0 not in np.diff(df['tm'].values) # monotonic
def test_read(): for test_file in test_files: # Without rename df = oo.read(test_file, rename=False) assert isinstance(df, pd.DataFrame) # With rename df = oo.read(test_file, rename=True) assert isinstance(df, pd.DataFrame)
def test_read_timedriver2(): df = oo.read(test_file2) assert df.shape == (15, 18) t = df['t'].values assert abs(t[0] - 1e-12) < tol assert abs(t[-1] - 15e-12) < tol
def _update_dt(self, system): # Find last odt file. dirname = self._filenames(system)["dirname"] last_odt_file = max(glob.iglob("{}*.odt".format(dirname)), key=os.path.getctime) # Update system's datatable. system.dt = oommfodt.read(last_odt_file)
def test_can_write_xls(): df = oommfodt.read(test_file1) df.to_excel('tmp.xls') df_load = pd.read_excel('tmp.xls') assert df_load.shape == (1, 23) assert np.allclose(np.array(df_load), np.array(df)) os.remove("tmp.xls")
def test_can_write_xlsx(): df = oommfodt.read(test_file2, replace_columns=False) df.to_excel('tmp.xlsx') df_load = pd.read_excel('tmp.xlsx') assert df_load.shape == (200, 22) assert np.allclose(np.array(df_load), np.array(df)) os.remove("tmp.xlsx")
def test_multiple_rows(): df = oommfodt.read(test_file2) dt = 5e-12 T = 1e-9 tol = 1e-20 t_array = df['t'].as_matrix() assert len(t_array) == 200 assert abs(t_array.min() - dt) < tol assert abs(t_array.max() - T) < tol assert t_array.min() == t_array[0] assert t_array.max() == t_array[-1] assert np.all(np.sort(t_array) == t_array)
def test_read(): for test_file in [test_file1, test_file2]: df = oommfodt.read(test_file) assert isinstance(df, pd.DataFrame) assert isinstance(df.units, dict) for i in df.units.values(): assert isinstance(i, str) assert 'J' in df.units.values() assert '{}' in df.units.values() for column in df.columns: assert ':' not in column assert 'E' in df.columns
def energy(self): _dict = {'Demag': 'Demag::Energy', 'Exchange': 'UniformExchange::Energy', 'UniaxialAnisotropy': 'UniaxialAnisotropy::Energy', 'Zeeman': 'FixedZeeman::Energy', 'Hamiltonian': 'RungeKuttaEvolve::Totalenergy'} td = oc.TimeDriver() td.drive(self.system, derive='energy') dirname = os.path.join(self.system.name, 'drive-{}'.format(self.system.drive_number-1)) odt_file = max(glob.iglob(os.path.join(dirname, '*.odt')), key=os.path.getctime) dt = oommfodt.read(odt_file, rename=False) return dt[_dict[self.cls]][0]
def energy(self): _dict = { "Demag": "Demag::Energy", "Exchange": "UniformExchange::Energy", "UniaxialAnisotropy": "UniaxialAnisotropy::Energy", "Zeeman": "FixedZeeman::Energy", "Hamiltonian": "RungeKuttaEvolve:evolver:Totalenergy" } td = oc.TimeDriver() td.drive(self.system, derive="energy") dirname = os.path.join(self.system.name, "") odt_file = max(glob.iglob("{}*.odt".format(dirname)), key=os.path.getctime) dt = oommfodt.read(odt_file, replace_columns=False) return dt[_dict[self.cls]][0]
def test_read_mindriver(): df = oo.read(test_file3) assert df.shape == (1, 20)
def _update_dt(self, system): system.dt = oo.read(os.path.join(self.dirname, f'{system.name}.odt'))
def dt(self): odtfilename = f'{self.name}.odt' return oo.read(os.path.join(self.dirname, odtfilename))
def test_single_row(): df = oommfodt.read(test_file1) assert len(df.columns) == 23 assert len(df['E'].as_matrix()) == 1