def test_repr(self): """Test __repr__ method""" for k in ('x', '$x$', 'var_name', 'var name', r"\theta", r'$\pi_{10}$'): var = VarKey(k) self.assertEqual(repr(var), k) # not sure what this means, but I want to know if it changes for num in (2, 2.0): v = VarKey(num) self.assertEqual(v, VarKey(str(num)))
def test_dict_key(self): """make sure variables are well-behaved dict keys""" v = VarKey() x = VarKey('$x$') d = {v: 1273, x: 'foo'} self.assertEqual(d[v], 1273) self.assertEqual(d[x], 'foo') d = {VarKey(): None, VarKey(): 12} self.assertEqual(len(d), 2)
def test_eq_neq(self): """Test boolean equality operators""" # no args x1 = VarKey() x2 = VarKey() self.assertTrue(x1 != x2) self.assertFalse(x1 == x2) self.assertEqual(x1, x1) V = VarKey('V') vel = VarKey('V') self.assertTrue(V == vel) self.assertFalse(V != vel) self.assertEqual(vel, vel)
def test_eq_neq(self): """Test boolean equality operators""" # no args vk1 = VarKey() vk2 = VarKey() self.assertTrue(vk1 != vk2) self.assertFalse(vk1 == vk2) self.assertEqual(vk1, vk1) V = VarKey('V') vel = VarKey('V') self.assertTrue(V == vel) self.assertFalse(V != vel) self.assertEqual(vel, vel) x1 = Variable("x", 3, "m") x2 = Variable("x", 2, "ft") x3 = Variable("x", 2, "m") self.assertNotEqual(x2.key, x3.key) self.assertEqual(x1.key, x3.key)
def test_eq_neq(self): """Test boolean equality operators""" # no args vk1 = VarKey() vk2 = VarKey() self.assertTrue(vk1 != vk2) self.assertFalse(vk1 == vk2) self.assertEqual(vk1, vk1) V = VarKey('V') vel = VarKey('V') self.assertTrue(V == vel) self.assertFalse(V != vel) self.assertEqual(vel, vel) x1 = Variable("x", 3, "m") x2 = Variable("x", 2, "ft") x3 = Variable("x", 2, "m") if gpkit.units: self.assertNotEqual(x2.key, x3.key) else: # units don't distinguish variables when they're disabled self.assertEqual(x2.key, x3.key) self.assertEqual(x1.key, x3.key)
def test_init(self): """Test VarKey initialization""" # test type x = VarKey('x') self.assertEqual(type(x), VarKey) # test no args x = VarKey() self.assertEqual(type(x), VarKey) y = VarKey(x) self.assertEqual(x, y) # test special 'name' keyword overwriting behavior x = VarKey('x', flavour='vanilla') self.assertEqual(x.name, 'x') x = VarKey(name='x') self.assertEqual(x.name, 'x') self.assertRaises(TypeError, lambda: VarKey('x', name='y')) self.assertRaises(TypeError, lambda: VarKey(x, name='y'))
def test_units_attr(self): """Make sure VarKey objects have a units attribute""" x = VarKey('x') for vk in (VarKey(), x, VarKey(**x.descr), VarKey(units='m')): self.assertTrue("units" in vk.descr)
def test_init(self): """Test VarKey initialization""" # test no-name init _ = ArrayVariable(1) # test protected field with self.assertRaises(ValueError): _ = ArrayVariable(1, idx=5) # test type x = VarKey('x') self.assertEqual(type(x), VarKey) # test no args x = VarKey() self.assertEqual(type(x), VarKey) y = VarKey(**x.descr) self.assertEqual(x, y) # test special 'name' keyword overwriting behavior x = VarKey('x', flavour='vanilla') self.assertEqual(x.name, 'x') x = VarKey(name='x') self.assertEqual(x.name, 'x') # pylint: disable=redundant-keyword-arg self.assertRaises(TypeError, lambda: VarKey('x', name='y')) self.assertIsInstance(x.latex(), str) self.assertIsInstance(x.latex_unitstr(), str)
def test_repr(self): """Test __repr__ method""" for k in ('x', '$x$', 'var_name', 'var name', r"\theta", r'$\pi_{10}$'): var = VarKey(k) self.assertEqual(repr(var), k)
def test_units_attr(self): """Make sure VarKey objects have a units attribute""" x = VarKey('x') for vk in (VarKey(), x, VarKey(x), VarKey(units='m')): self.assertTrue(hasattr(vk, 'units'))