diff --git a/pennylane/devices/tracker.py b/pennylane/devices/tracker.py index 9098c21ad86..30306de6fc1 100644 --- a/pennylane/devices/tracker.py +++ b/pennylane/devices/tracker.py @@ -179,6 +179,18 @@ def __init__(self, dev=None, callback=None, persistent=False): raise ValueError(f"Device '{dev.short_name}' does not support device tracking") dev.tracker = self + def __repr__(self): + return( + f"<" + f"{self.__class__.__name__}(" + f"active={self.active!r}, " + f"persistent={self.persistent!r}, " + f"totals={self.totals!r}, " + f"history={self.history!r}, " + f"latest={self.latest!r}" + f")>" + ) + def __enter__(self): if not self.persistent: self.reset() diff --git a/tests/devices/test_tracker.py b/tests/devices/test_tracker.py index 0b6464c91cf..5780a384a48 100644 --- a/tests/devices/test_tracker.py +++ b/tests/devices/test_tracker.py @@ -41,6 +41,34 @@ def test_default_initialization(self): assert tracker.active is False + def test_repr(self): + """Test repr functionality""" + tracker = Tracker() + default_repr = ( + "" + ) + assert default_repr == repr(tracker) + tracker.active = True + tracker.update(a=1, b=2, c="c") + updated_repr = ( + "" + ) + assert updated_repr == repr(tracker) + tracker.update(a=2, b=3, c=0) + tracker.persistent=True + updated_repr = ( + "" + ) + assert updated_repr == repr(tracker) + + def test_device_assignment(self): """Assert gets assigned to device"""