def testOutOfBounds(self): r = db.RowId('r', db.Id('x', 1), db.Id('y', 1)) with self.assertRaises(ValueError): r.create(2, 2) with self.assertRaises(ValueError): r.parse(4) with self.assertRaises(ValueError): r.get_range(2)
def testCheck(self): id1 = db.Id('foo_id', 1) with self.assertRaises(ValueError): id1.check(-1) id1.check(0) id1.check(1) with self.assertRaises(ValueError): id1.check(2) id2 = db.Id('foo_id', 2) id2.check(0) id2.check(3) with self.assertRaises(ValueError): id2.check(4)
def testGetRange(self): r = db.RowId('r', db.Id('x', 4), db.Id('y', 4)) self.assertEqual((0x00, 0x0F), r.get_range(0x0)) self.assertEqual((0xF0, 0xFF), r.get_range(0xF))
def testCreateAndParse(self): r = db.RowId('r', db.Id('g', 2), db.Id('l', 2)) for x, y in itertools.product(range(3), range(3)): self.assertEqual((x, y), r.parse(r.create(x, y)))
def testTooManyBits(self): db.RowId('r', db.Id('g', 32), db.Id('l', 31)) with self.assertRaises(ValueError): db.RowId('r', db.Id('g', 32), db.Id('l', 32))
def testFields(self): id_ = db.Id('foo_id', 2) self.assertEqual('foo_id', id_.name) self.assertEqual(2, id_.bits) self.assertEqual(3, id_.max)
def testGenerate(self): # TODO(jart): Mock this out instead and test better. self.assertIn(db.Id('foo_id', 1).generate(), (0, 1))
def testPositiveBits(self): with self.assertRaises(ValueError): db.Id('i', 0) with self.assertRaises(ValueError): db.Id('i', -1)