Exemple #1
0
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
Exemple #2
0
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)
Exemple #3
0
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
Exemple #4
0
    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)
Exemple #5
0
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")
Exemple #6
0
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")
Exemple #7
0
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)
Exemple #8
0
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
Exemple #9
0
    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]
Exemple #10
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]
Exemple #11
0
def test_read_mindriver():
    df = oo.read(test_file3)
    assert df.shape == (1, 20)
Exemple #12
0
 def _update_dt(self, system):
     system.dt = oo.read(os.path.join(self.dirname,
                                      f'{system.name}.odt'))
Exemple #13
0
 def dt(self):
     odtfilename = f'{self.name}.odt'
     return oo.read(os.path.join(self.dirname, odtfilename))
Exemple #14
0
def test_single_row():
    df = oommfodt.read(test_file1)

    assert len(df.columns) == 23
    assert len(df['E'].as_matrix()) == 1