def test_if_fitted(data_random): x = data_random model = Koopman() with pytest.raises(NotFittedError): model.predict(x) with pytest.raises(NotFittedError): model.simulate(x) with pytest.raises(NotFittedError): model.koopman_matrix with pytest.raises(NotFittedError): model._step(x)
def test_simulate_accuracy(data_2D_superposition): x = data_2D_superposition model = Koopman().fit(x) n_steps = 10 x_pred = model.simulate(x[0], n_steps=n_steps) assert_allclose(x[1:n_steps + 1], x_pred)
def test_simulate_accuracy_dmdc(data_2D_linear_control_system): X, C, _, _ = data_2D_linear_control_system DMDc = regression.DMDc(svd_rank=3) model = Koopman(regressor=DMDc).fit(X, C) n_steps = len(C) x_pred = model.simulate(X[0, :], C, n_steps=n_steps - 1) assert_allclose(X[1:n_steps, :], x_pred, 1e-07, 1e-12)
def test_simulate_with_time_delay(data_2D_superposition): x = data_2D_superposition observables = TimeDelay() model = Koopman(observables=observables) model.fit(x) n_steps = 10 n_consumed_samples = observables.n_consumed_samples x_pred = model.simulate(x[:n_consumed_samples + 1], n_steps=n_steps) assert_allclose(x[n_consumed_samples + 1:n_consumed_samples + n_steps + 1], x_pred)