diff --git a/src/counter.py b/src/counter.py new file mode 100644 index 0000000..8c7dae2 --- /dev/null +++ b/src/counter.py @@ -0,0 +1,20 @@ + +class Counter: + def __init__(self, val=0): + self.reset_on = val + self.val = val + + def __repr__(self): + return f"Counter: {self.val} [reset on {self.reset_on}]" + + def incr(self): + self.val += 1 + return self.val + + def decr(self): + self.val -= 1 + return self.val + + def reset(self): + self.val = self.reset_on + return self.val diff --git a/src/main.py b/src/main.py index eecebab..a3907c4 100644 --- a/src/main.py +++ b/src/main.py @@ -2,6 +2,7 @@ from strings import * from tree import * +from counter import * def trees(): t = build_tree((1, @@ -73,8 +74,30 @@ def trees(): assert number_of_nodes(build_tree((0, (1, None, None), (2, None, None)))) == 3 assert number_of_nodes(build_tree((0, (1, (3, None, None), None), (2, None, None)))) == 4 -def main(): +def counter(): + c = Counter() + assert c.incr() == 1 + assert c.decr() == 0 + assert c.decr() == -1 + assert c.reset() == 0 + c = Counter(5) + c.incr() + c.incr() + c.incr() + assert c.val == 8 + c.reset() + assert c.val == 5 + + c = Counter(-1) + assert c.val == -1 + c.incr() + c.incr() + assert c.val == 1 + + +def main(): + counter() pass if __name__ == "__main__":