def test_variable(self): x = Variable(2) y = Variable(2) assert y.name() != x.name() x = Variable(2, name='x') y = Variable() self.assertEqual(x.name(), 'x') self.assertEqual(x.size, (2,1)) self.assertEqual(y.size, (1,1)) self.assertEqual(x.curvature, u.Curvature.AFFINE) self.assertEqual(x.canonicalize()[0].size, (2,1)) self.assertEqual(x.canonicalize()[1], []) # Scalar variable coeff = self.a.coefficients(self.intf) self.assertEqual(coeff[self.a], 1) # Vector variable. coeffs = x.coefficients(self.intf) self.assertItemsEqual(coeffs.keys(), [x]) vec = coeffs[x] self.assertEqual(vec.size, (2,2)) self.assertEqual(list(vec), [1,0,0,1]) # Matrix variable. coeffs = self.A.coefficients(self.intf) self.assertItemsEqual(coeffs.keys(), [self.A]) mat = coeffs[self.A] self.assertEqual(mat.size, (2,2)) self.assertEqual(list(mat), [1,0,0,1])