Coverage for /Users/fmorton/GitHub/Birdbrain-Python-Library-2/src/birdbrain_state.py: 96%

28 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-10-14 15:48 -0400

1class BirdbrainState: 

2 def __init__(self): 

3 self.cache = {} 

4 self.display_map = BirdbrainState.microbit_empty_display_map() 

5 

6 def display_map_clear(self): 

7 self.display_map = BirdbrainState.microbit_empty_display_map 

8 

9 def set_list(self, list): 

10 self.display_map = list 

11 

12 def set_pixel(self, x, y, value): 

13 self.display_map[((x * 5) + y - 6)] = value 

14 

15 def display_map_normalize(self): 

16 return(["true" if ((pixel == 1) or (pixel is True)) else "false" for pixel in self.display_map]) 

17 

18 def display_map_as_string(self, list = None): 

19 if list is not None: self.set_list(list) 

20 

21 return "/".join(self.display_map_normalize()) 

22 

23 def set(self, name, value): 

24 if value == None: 

25 if name in self.cache: 

26 self.cache.pop(name) 

27 else: 

28 self.cache[name] = value 

29 

30 return value 

31 

32 def get(self, name): 

33 if name in self.cache: 

34 return self.cache[name] 

35 else: 

36 return None 

37 

38 @classmethod 

39 def microbit_empty_display_map(self): 

40 return([0] * 25)