hope

Finished
1import random
2import string
3
14class Robot:
5 # Class variable to store all used names
6 _used_names = set()
7
28 def __init__(self):
3 pass
4
9 self._name = None
10
511 @property
612 def name(self) -> str:
7 pass
8
13 # Edge Case: Robot already has a name, return it
14 if self._name is not None:
15 return self._name
16
17 # Edge Case: All possible names are used (very unlikely but possible in theory)
18 max_attempts = 1000 # Prevent infinite loop
19 attempts = 0
20
21 while attempts < max_attempts:
22 # Generate random name: two uppercase letters + three digits
23 letters = ''.join(random.choices(string.ascii_uppercase, k=2))
24 digits = ''.join(random.choices(string.digits, k=3))
25 new_name = letters + digits
26
27 # Edge Case: Generated name is unique, use it
28 if new_name not in self._used_names:
29 self._used_names.add(new_name)
30 self._name = new_name
31 return self._name
32
33 attempts += 1
34
35 # Edge Case: Failed to generate unique name after max attempts
36 raise RuntimeError("Unable to generate unique robot name")
37
938 def reset(self) -> None:
10 pass
39 # Edge Case: Robot has a name that needs to be removed from registry
40 if self._name is not None:
41 self._used_names.discard(self._name)
42 self._name = None
43
44 # Handled Edge Cases: Robot already has a name, generated name is unique, failed to generate unique name after max attempts, robot has a name that needs to be removed from registry
Test NameStatus
test_reset_name
Fail
test_different_robots_have_different_names
Pass
test_has_name
Pass
test_name_sticks
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.