def test_make(self): self.assertTrue(Expression.make('a') == 'a') self.assertTrue(Expression.make('a + b') == 'a + b') self.assertTrue(Expression.make(9) == 9) self.assertIsInstance(Expression.make([1, 'a']), ExpressionVector) self.assertIsInstance(ExpressionScalar.make('a'), ExpressionScalar) self.assertIsInstance(ExpressionVector.make(['a']), ExpressionVector)
def __new__(cls, t: ValueInInit, v: ValueInInit, interp: Optional[Union[str, InterpolationStrategy]]='default'): if interp in TablePulseTemplate.interpolation_strategies: interp = TablePulseTemplate.interpolation_strategies[interp] if interp is not None and not isinstance(interp, InterpolationStrategy): raise KeyError(interp, 'is not a valid interpolation strategy') return super().__new__(cls, ExpressionScalar.make(t), Expression.make(v), interp)
def test_slots(self): entry = TableEntry('a', Expression.make('b'), 'hold') self.assertFalse(hasattr(entry, '__dict__'))
def test_as_expression(self): pulse = FunctionPulseTemplate('sin(0.5*t+b)', '2*Tmax') expr = sympy.sin(0.5 * pulse._AS_EXPRESSION_TIME + sympy.sympify('b')) self.assertEqual({'default': Expression.make(expr)}, pulse._as_expression())