chore: add Counter class
Some checks failed
Run tests / test (push) Failing after 1m44s
Code Quality / lint (push) Successful in 1m46s

This commit is contained in:
2026-01-26 01:02:03 +01:00
parent 0d16d72c4d
commit 517d81bd15
2 changed files with 44 additions and 1 deletions

20
src/counter.py Normal file
View File

@@ -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

View File

@@ -2,6 +2,7 @@
from strings import * from strings import *
from tree import * from tree import *
from counter import *
def trees(): def trees():
t = build_tree((1, 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, None, None), (2, None, None)))) == 3
assert number_of_nodes(build_tree((0, (1, (3, None, None), None), (2, None, None)))) == 4 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 pass
if __name__ == "__main__": if __name__ == "__main__":