Gerencie as configurações de fábrica do robô.
Quando um robô sai da linha de montagem, ele não tem nome.
Na primeira vez que você liga um robô, um nome aleatório é gerado no formato de duas letras maiúsculas seguidas de três dígitos, como RX837 ou BC811.
De vez em quando, precisamos restaurar um robô para as configurações de fábrica. Isso apaga o nome dele. Na próxima vez que você perguntar, esse robô vai responder com um novo nome aleatório.
Os nomes precisam ser aleatórios: eles não devem seguir uma sequência previsível. Usar nomes aleatórios implica o risco de colisões. Sua solução precisa garantir que todo robô existente tenha um nome único.
É possível ficar sem nomes de robô: quando todos os nomes possíveis já tiverem sido atribuídos, um erro deve ser retornado.
Quando você conseguir fazer o go test passar, vai encontrar na suíte de testes um teste chamado TestCollisions, que é ignorado por padrão porque pode demorar bastante.
Esse teste cria novos robôs até que não seja mais possível atribuir nomes novos ao robô.
Para fazer o teste rodar, remova esta linha:
t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")
Para fazer esse teste passar, você vai precisar garantir que o nome de um robô não tenha sido usado antes e que os nomes possam ser atribuídos de forma eficiente.
Crie sua conta no Exercism para aprender e dominar Go com 34 conceitos165 exercícios e mentoria humana de verdade, tudo de graça.