def test_tabulated_failures(self): with self.assertRaisesRegex(ValueError, 'do not match'): ct.TabulatedFunction(range(2), range(3)) with self.assertRaisesRegex(ValueError, 'must not be empty'): ct.TabulatedFunction([], []) with self.assertRaisesRegex(ct.CanteraError, 'monotonically'): ct.TabulatedFunction((0, 1, 0.5, 2), (2, 1, 1, 0)) with self.assertRaisesRegex(ct.CanteraError, 'not implemented'): ct.TabulatedFunction((0, 1, 1, 2), (2, 1, 1, 0), method='not implemented')
def test_tabulated1(self): arr = np.array([[0, 2], [1, 1], [2, 0]]) time = arr[:, 0] fval = arr[:, 1] fcn = ct.TabulatedFunction(time, fval) for t, f in zip(time, fval): self.assertNear(f, fcn(t))
def test_tabulated4(self): time = np.array([0, 1, 2]) fval = np.array([2, 1, 0]) fcn = ct.TabulatedFunction(time, fval) tt = .5 * (time[1:] + time[:-1]) ff = .5 * (fval[1:] + fval[:-1]) for t, f in zip(tt, ff): self.assertNear(f, fcn(t))
def test_tabulated3(self): time = 0, 1, 2, fval = 2, 1, 0, fcn = ct.TabulatedFunction(time, fval) self.assertNear(fcn(-1), fval[0]) self.assertNear(fcn(3), fval[-1])
def test_tabulated2(self): time = [0, 1, 2] fval = [2, 1, 0] fcn = ct.TabulatedFunction(time, fval) for t, f in zip(time, fval): self.assertNear(f, fcn(t))
def test_tabulated5(self): time = [0, 1, 2] fval = [2, 1, 0] fcn = ct.TabulatedFunction(time, fval, method='previous') val = np.array([fcn(v) for v in [-0.5, 0, 0.5, 1.5, 2, 2.5]]) self.assertArrayNear(val, np.array([2.0, 2.0, 2.0, 1.0, 0.0, 0.0]))