def test_reconstructed_data(self): dmd = MrDMD(svd_rank=0, max_level=6, max_cycles=2, exact=True) dmd.fit(X=sample_data) dmd_data = dmd.reconstructed_data norm_err = (old_div(np.linalg.norm(sample_data - dmd_data), np.linalg.norm(sample_data))) assert norm_err < 1
def test_eigs2(self): max_level = 5 level = 2 rank = -1 dmd = MrDMD(svd_rank=rank, max_level=max_level, max_cycles=2) dmd.fit(X=sample_data) assert dmd.eigs.ndim == 1
def test_partial_dynamics1(self): max_level = 5 level = 2 rank = 2 dmd = MrDMD(svd_rank=rank, max_level=max_level, max_cycles=2) dmd.fit(X=sample_data) pdynamics = dmd.partial_dynamics(level) assert pdynamics.shape == (2**level * rank, sample_data.shape[1])
def test_partial_modes2(self): max_level = 5 level = 2 rank = 2 dmd = MrDMD(svd_rank=rank, max_level=max_level, max_cycles=2) dmd.fit(X=sample_data) pmodes = dmd.partial_modes(level, 3) assert pmodes.shape == (sample_data.shape[0], rank)
def test_partial_eigs2(self): max_level = 5 level = 2 rank = 2 dmd = MrDMD(svd_rank=rank, max_level=max_level, max_cycles=2) dmd.fit(X=sample_data) peigs = dmd.partial_eigs(level, 3) assert peigs.shape == (rank, )
def test_partial_reconstructed1(self): max_level = 5 level = 2 rank = 2 dmd = MrDMD(svd_rank=rank, max_level=max_level, max_cycles=2) dmd.fit(X=sample_data) pdata = dmd.partial_reconstructed_data(level) assert pdata.shape == sample_data.shape
def test_wrong_partial_reconstructed(self): max_level = 5 level = 2 rank = 2 dmd = MrDMD(svd_rank=rank, max_level=max_level, max_cycles=2) dmd.fit(X=sample_data) with self.assertRaises(ValueError): pdata = dmd.partial_reconstructed_data(max_level, 2)
def test_partial_reconstructed2(self): max_level = 5 level = 2 rank = 2 dmd = MrDMD(svd_rank=rank, max_level=max_level, max_cycles=2) dmd.fit(X=sample_data) pdata = dmd.partial_reconstructed_data(level, 3) assert pdata.shape == (sample_data.shape[0], old_div( sample_data.shape[1], 2**level))
def test_wrong_plot_eig1(self): dmd = MrDMD(svd_rank=-1, max_level=7, max_cycles=1) dmd.fit(X=sample_data) with self.assertRaises(ValueError): dmd.plot_eigs( show_axes=True, show_unit_circle=True, figsize=(8, 8), level=7 )
def test_wrong_bin(self): max_level = 5 level = 2 dmd = MrDMD(max_level=max_level) dmd.fit(sample_data) with self.assertRaises(ValueError): dmd.partial_modes(level=level, node=2**level)
def test_index_list_reversed2(self): level = 3 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) with self.assertRaises(ValueError): dmd._index_list_reversed(7)
def test_index_list_reversed(self): level = 3 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) assert dmd._index_list_reversed(6) == (2, 3)
def test_index_list2(self): level = 5 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) with self.assertRaises(ValueError): dmd._index_list(3, 10)
def test_index_list(self): level = 5 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) assert dmd._index_list(3, 0) == 7
def test_max_level_threshold2(self): level = 10 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.fit(X=sample_data) assert dmd._steps[-1] == 1
def test_max_level_threshold(self): level = 10 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.fit(X=sample_data) lvl_threshold = int(np.log(sample_data.shape[1]/4.)/np.log(2.)) + 1 assert lvl_threshold == dmd.max_level
def test_plot_eig3(self): dmd = MrDMD(svd_rank=-1, max_level=7, max_cycles=1) dmd.fit(X=sample_data) dmd.plot_eigs(show_axes=False, show_unit_circle=False, level=1, node=0) plt.close()
def test_plot_eig2(self): dmd = MrDMD(svd_rank=-1, max_level=7, max_cycles=1) dmd.fit(X=sample_data) dmd.plot_eigs(show_axes=True, show_unit_circle=False, title='Title') plt.close()
def test_plot_eig1(self): dmd = MrDMD(svd_rank=-1, max_level=7, max_cycles=1) dmd.fit(X=sample_data) dmd.plot_eigs(show_axes=True, show_unit_circle=True, figsize=(8, 8)) plt.close()
def test_wrong_plot_eig2(self): dmd = MrDMD(svd_rank=1, max_level=7, max_cycles=1) with self.assertRaises(ValueError): dmd.plot_eigs()
def test_time_window_bins4(self): level = 3 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.original_time = {'t0': 0, 'tend': 4, 'dt': 1} comparison = dmd.time_window_bins(1, 3) == np.array([0, 1, 2, 4, 5]) assert comparison.all()
def test_partial_time_interval(self): level = 4 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.original_time = {'t0': 0, 'tend': 8, 'dt': 1} ans = {'t0': 6.0, 'tend': 7.0, 'dt': 1.0} assert dmd.partial_time_interval(3, 6) == ans
def test_time_window_amplitudes(self): level = 3 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.fit(X=sample_data) assert len(dmd.time_window_amplitudes(0, dmd._snapshots.shape[1])) == 7
def test_shape_modes(self): level = 5 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.fit(X=sample_data) assert dmd.modes.shape == (sample_data.shape[0], 2**level - 1)
def test_shape_dynamics(self): level = 5 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.fit(X=sample_data) assert dmd.dynamics.shape == (2**level - 1, sample_data.shape[1])
def test_partial_time_interval3(self): level = 4 dmd = MrDMD(svd_rank=1, max_level=level, max_cycles=2) dmd.original_time = {'t0': 0, 'tend': 8, 'dt': 1} with self.assertRaises(ValueError): dmd.partial_time_interval(3, 8)
def test_wrong_level(self): max_level = 5 dmd = MrDMD(max_level=max_level) dmd.fit(sample_data) with self.assertRaises(ValueError): dmd.partial_modes(max_level + 1)