def test_dense_right_interval_vec(): denseoutput = DenseOutput(None, None) inputs = D.array([0, 1, 0, 1, 1, 1]) interpolator = CubicHermiteInterp(*inputs) denseoutput.add_interpolant(1, interpolator) denseoutput.add_interpolant(2, interpolator) assert (D.all( denseoutput.find_interval_vec([0.5, 0.99999, 1.00001, 1.5]) == D.array( [0, 0, 1, 1], dtype=D.int64)))
def test_dense_add_timemismatch_oob(): inputs = D.array([0, 1, 0, 1, 1, 1]) interpolator = CubicHermiteInterp(*inputs) denseoutput = DenseOutput([0, 1], [interpolator]) def new_interp(t): if t > 2: raise ValueError("Out of bounds") else: return t denseoutput.add_interpolant(3, new_interp)
def test_dense_add_outofbounds(): with pytest.raises(ValueError): inputs = D.array([0, 1, 0, 1, 1, 1]) interpolator = CubicHermiteInterp(*inputs) denseoutput = DenseOutput([0, 1], [interpolator]) def new_interp(t): if t < 2: raise ValueError("Out of bounds") else: return t denseoutput.add_interpolant(2, new_interp)
def test_dense_right_interval(): denseoutput = DenseOutput(None, None) inputs = D.array([0, 1, 0, 1, 1, 1]) interpolator = CubicHermiteInterp(*inputs) denseoutput.add_interpolant(1, interpolator) denseoutput.add_interpolant(2, interpolator) assert (denseoutput.find_interval(0.5) == 0) assert (denseoutput.find_interval(0.99999) == 0) assert (denseoutput.find_interval(1.00001) == 1) assert (denseoutput.find_interval(1.5) == 1)
def test_dense_init_and_call(): denseoutput = DenseOutput(None, None) assert (denseoutput.t_eval == [0.0]) assert (denseoutput.y_interpolants == [])
def test_dense_init_mismatch_length(): with pytest.raises(ValueError): return DenseOutput([0.1], [0.1, 0.1])
def test_dense_init_no_y(): with pytest.raises(ValueError): return DenseOutput([0.1], None)
def test_dense_init_no_t(): with pytest.raises(ValueError): return DenseOutput(None, [0.1])
def test_dense_add_noncallable(): with pytest.raises(TypeError): inputs = D.array([0, 1, 0, 1, 1, 1]) interpolator = CubicHermiteInterp(*inputs) denseoutput = DenseOutput([0, 1], [interpolator]) denseoutput.add_interpolant(2, None)
def test_dense_init_add_prefix(): denseoutput = DenseOutput(None, None) inputs = D.array([-1, 0, 0, 1, 1, 1]) interpolator = CubicHermiteInterp(*inputs) denseoutput.add_interpolant(-1, interpolator)
def test_dense_init_mismatch_length(): denseoutput = DenseOutput([0.1], [0.1, 0.1])
def test_dense_init_no_y(): denseoutput = DenseOutput([0.1], None)
def test_dense_init_no_t(): denseoutput = DenseOutput(None, [0.1])