1
exercism fetch go robot-name

Robot Name

Manage robot factory settings.

When robots come off the factory floor, they have no name.

The first time you boot them up, a random name is generated in the format of two uppercase letters followed by three digits, such as RX837 or BC811.

Every once in a while we need to reset a robot to its factory settings, which means that their name gets wiped. The next time you ask, it will respond with a new random name.

The names must be random: they should not follow a predictable sequence. Random names means a risk of collisions. Your solution must ensure that every existing robot has a unique name.

Bonus exercise

Once you get go test passing, try go test -tags bonus. This uses a build tag to enable a test that wasn't previously enabled. Build tags control which files should be included in the package. You can read more about those at the Go documentation.

For this exercise it limits go test to only build the tests in the robot_name_test.go file. We can then include the bonus test in the bonus_test.go file with the tags flag as described above.

To get the bonus test to pass you'll have to ensure a robot's name has not been used before.

Running the tests

To run the tests run the command go test from within the exercise directory.

If the test suite contains benchmarks, you can run these with the -bench flag:

1
go test -bench .

Keep in mind that each reviewer will run benchmarks on a different machine, with different specs, so the results from these benchmark tests may vary.

Further information

For more detailed information about the Go track, including how to get help if you're having trouble, please visit the exercism.io Go language page.

Source

A debugging session with Paul Blackwell at gSchool. http://gschool.it

Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.