def testInitInvalid(self): with self.assertRaises(ValueError): m = ldmud.Mapping([(1, ), (2, 3)]) with self.assertRaises(ValueError): m = ldmud.Mapping([(), ()]) with self.assertRaises(ValueError): m = ldmud.Mapping(width=-1)
def testGetSetInvalid(self): m = ldmud.Mapping(width=0) with self.assertRaises(Exception): m[10] = 1 with self.assertRaises(Exception): val = m[10] m = ldmud.Mapping(width=2) with self.assertRaises(IndexError): m['Hi', 'There'] = 'Me' with self.assertRaises(IndexError): m['Hi', 2] = 0
def testLvalueMappingItem(self): m = ldmud.Mapping({1: 1, 2: 4, 3: 9, 4: 16}) lv = ldmud.Lvalue(m) lv[3].value = 27 self.assertEqual(m[3], 27) m[3] = 81 self.assertEqual(lv[3, 0].value, 81)
def testLvalueMappingNewItem(self): m = ldmud.Mapping() lv = ldmud.Lvalue(m) item = lv[3] self.assertEqual(item.value, 0) self.assertEqual(len(m), 0) item.value = 9 self.assertEqual(len(m), 1) self.assertEqual(m[3], 9) self.assertEqual(item.value, 9)
def testInitList(self): m = ldmud.Mapping([(1,2,3),(4,5,6),(7,8,9),(10,11,12),(13,14,15)]) self.assertIsNotNone(m) self.assertEqual(len(m), 5) self.assertEqual(m.width, 2) self.assertEqual(m[1], 2) self.assertEqual(m[4,1], 6) self.assertEqual(m[7,0], 8) self.assertTrue(13 in m) self.assertFalse(14 in m)
def testInitDict(self): m = ldmud.Mapping({1: 1, 2: 4, 3: 9, 4: 16}) self.assertIsNotNone(m) self.assertEqual(len(m), 4) self.assertEqual(m.width, 1) self.assertEqual(m[1], 1) self.assertEqual(m[2], 4) self.assertEqual(m[3], 9) self.assertEqual(m[4], 16) self.assertTrue(4 in m) self.assertFalse(5 in m)
def testGetSetSimple(self): m = ldmud.Mapping() self.assertIsNotNone(m) m['Hello'] = 1 m['World'] = 2 self.assertEqual(len(m), 2) self.assertEqual(m.width, 1) self.assertEqual(m['Hello'], 1) self.assertEqual(m['World'], 2) self.assertEqual(m['!'], 0) self.assertFalse('!' in m)
def testDeletion(self): m = ldmud.Mapping({"One": 1, "Two": 2, "Three": 3}) self.assertIsNotNone(m) self.assertEqual(len(m), 3) self.assertEqual(m.width, 1) del m["Two"] self.assertEqual(len(m), 2) self.assertEqual(m.width, 1) self.assertFalse('Two' in m) self.assertEqual(m['One'], 1) self.assertEqual(m['Three'], 3)
def testIterator(self): m = ldmud.Mapping({ "One": 1, "Two": 2, "Three": 3 }) self.assertEqual(dict(m), {"One": 1, "Two": 2, "Three": 3}) self.assertEqual(set(m.keys()), set(( "One", "Two", "Three", ))) self.assertEqual(set(m.values()), set(( 1, 2, 3, )))
def testGetSetWide(self): m = ldmud.Mapping(width=2) self.assertIsNotNone(m) m['Hello', 0] = 1 m['Hello', 1] = 42 m['World'] = 2 m['World', 1] = 100 self.assertEqual(len(m), 2) self.assertEqual(m.width, 2) self.assertEqual(m['Hello'], 1) self.assertEqual(m['Hello', 0], 1) self.assertEqual(m['Hello', 1], 42) self.assertEqual(m['World'], 2) self.assertEqual(m['World', 0], 2) self.assertEqual(m['World', 1], 100)
def testInitWidth(self): m = ldmud.Mapping(width=10) self.assertIsNotNone(m) self.assertEqual(len(m), 0) self.assertEqual(m.width, 10)
def testInitEmpty(self): m = ldmud.Mapping() self.assertIsNotNone(m) self.assertEqual(len(m), 0) self.assertEqual(m.width, 1)
def parse_object(self, *args, **kwargs): (val, end) = self.orig_parse_object(*args, **kwargs) return (ldmud.Mapping(val), end)