parent
e9c75f7ca1
commit
7a08901117
|
@ -74,6 +74,15 @@ class Layout:
|
|||
def __eq__(self, other):
|
||||
return self.fields == other.fields
|
||||
|
||||
def __repr__(self):
|
||||
field_reprs = []
|
||||
for name, shape, dir in self:
|
||||
if dir == DIR_NONE:
|
||||
field_reprs.append("({!r}, {!r})".format(name, shape))
|
||||
else:
|
||||
field_reprs.append("({!r}, {!r}, Direction.{})".format(name, shape, dir.name))
|
||||
return "Layout([{}])".format(", ".join(field_reprs))
|
||||
|
||||
|
||||
# Unlike most Values, Record *can* be subclassed.
|
||||
class Record(Value):
|
||||
|
|
|
@ -59,6 +59,13 @@ class LayoutTestCase(FHDLTestCase):
|
|||
])
|
||||
self.assertEqual(layout["a", "c"], expect)
|
||||
|
||||
def test_repr(self):
|
||||
self.assertEqual(repr(Layout([("a", 1), ("b", signed(2))])),
|
||||
"Layout([('a', unsigned(1)), ('b', signed(2))])")
|
||||
self.assertEqual(repr(Layout([("a", 1), ("b", [("c", signed(3))])])),
|
||||
"Layout([('a', unsigned(1)), "
|
||||
"('b', Layout([('c', signed(3))]))])")
|
||||
|
||||
def test_wrong_field(self):
|
||||
with self.assertRaises(TypeError,
|
||||
msg="Field (1,) has invalid layout: should be either (name, shape) or "
|
||||
|
|
Loading…
Reference in a new issue