kale

Finished
1import random
2import string
3
4
15class Robot:
6 _used_names = set()
7
28 def __init__(self):
3 pass
9 self._name = None
410
511 @property
612 def name(self) -> str:
7 pass
13 if self._name is None:
14 self._generate_name()
15 return self._name
816
917 def reset(self) -> None:
10 pass
18 # Edge Case: Resetting releases the current name and generates a new one
19 if self._name:
20 self._used_names.discard(self._name)
21 self._generate_name()
22
23 def _generate_name(self) -> None:
24 # Edge Case: Handle name generation when all possible names are exhausted
25 max_attempts = 676000 # 26*26*10*10*10
26 attempts = 0
27
28 while attempts < max_attempts:
29 # Generate two random uppercase letters
30 letters = ''.join(random.choices(string.ascii_uppercase, k=2))
31 # Generate three random digits
32 digits = ''.join(random.choices(string.digits, k=3))
33 # Combine to form the name
34 new_name = letters + digits
35
36 # Edge Case: Ensure generated name is unique
37 if new_name not in self._used_names:
38 self._used_names.add(new_name)
39 self._name = new_name
40 return
41
42 attempts += 1
43
44 # Edge Case: All possible names are exhausted
45 raise RuntimeError("All possible robot names have been exhausted")
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.