Sha256: 4f7eaaaf22e487ec96cf465a082c24a1c63d79f415e266ab08fa4c4dd1f19ece

Contents?: true

Size: 1.06 KB

Versions: 83

Compression:

Stored size: 1.06 KB

Contents

#!/usr/bin/env perl6
use v6;
use Test;
use lib $?FILE.IO.dirname;
use Robot;
plan 7;

my Version:D $version = v2;

if Robot.^ver !~~ $version {
  warn "\nExercise version mismatch. Further tests may fail!"
    ~ "\nRobot is {Robot.^ver.gist}. "
    ~ "Test is {$version.gist}.\n";
}

subtest 'Class methods', {
  ok Robot.can($_), $_ for <name reset-name>;
}

srand 1;
my $robot = Robot.?new;
my Str $name = $robot.?name;
like $name, /^^<[A..Z]>**2 <[0..9]>**3$$/, 'Name matches schema';

srand 2;
is $robot.?name, $name, 'Name is persistent';
srand 1;
isnt Robot.new.?name, $name, 'New Robot cannot claim previous Robot name';

srand 1;
$robot.?reset-name;
$robot.?reset_name; # Allows next test to still pass for older solutions

isnt $robot.?name, $name, "'reset-name' cannot use previous Robot name";

diag "\nCreating 100 robots...";
push my @names, Robot.new.name for 1..100;
is @names, @names.unique, 'All names are unique';
subtest 'Randomness', {
  plan 2;
  isnt @names, @names.sort, 'Names not ordered';
  isnt @names, @names.sort.reverse, 'Names not reverse ordered';
}

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.158 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.157 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.156 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.155 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.154 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.153 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.152 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.151 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.150 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.149 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.148 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.147 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.146 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.145 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.144 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.143 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.142 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.141 tracks/perl6/exercises/robot-name/robot-name.t
trackler-2.2.1.140 tracks/perl6/exercises/robot-name/robot-name.t