Sha256: ee6d8e16782e4e9577fa94501839a32fbb592d7b87c2e0cd34a37bb8ba4e4026

Contents?: true

Size: 1.58 KB

Versions: 303

Compression:

Stored size: 1.58 KB

Contents

#!/usr/bin/env perl
use warnings;
use strict;

use Test::More tests => 9;
use FindBin;
my $dir;
BEGIN { $dir = $FindBin::Bin . '/' };
use lib $dir;

my $module = $ENV{EXERCISM} ? 'Example' : 'GradeSchool';

use_ok($module) or BAIL_OUT "You need to create a module called $module.pm";

sub new_school {
  no strict 'refs';
  $module->new();
};

is_deeply new_school, {}, 'empty school';

for (1) {
  my $school = new_school;
  $school->add('Aimee', 2);
  is_deeply $school, {2 => ['Aimee']}, 'add student';
}

for (1) {
  my $school = new_school;
  $school->add($_, 2) for qw(Blair James Paul);
  is_deeply $school, {2 => ['Blair', 'James', 'Paul']}, 'add more students';
}

for (1) {
  my $school = new_school;
  $school->add('Chelsea', 3);
  $school->add('Logan', 7);
  is_deeply $school, { 3 => ['Chelsea'], 7 => ['Logan'] }, 'add students to different grades';
}

for (1) {
  my $school = new_school;
  $school->add($_, 5) for 'Bradley', 'Franklin';
  $school->add('Jeff', 1);
  is_deeply $school->grade(5), ['Bradley', 'Franklin'], 'get students in a grade';
}

for (1) {
  my $school = new_school;
  $school->add($_, 5) for 'Franklin', 'Bradley';
  $school->add('Jeff', 1);
  is_deeply $school->grade(5), ['Bradley', 'Franklin'], 'get students sorted in a grade';
}

is_deeply new_school->grade(1), [], 'get students in a non-existant grade';

for (1) {
  my $school = new_school;
  $school->add('Jennifer', 4);
  $school->add('Kareem', 6);
  $school->add('Christopher', 4);
  $school->add('Kyle', 3);

  is_deeply $school, { 3 => ['Kyle'], 4 => ['Christopher', 'Jennifer'], 6 => ['Kareem'] }, 'sort school';
}

Version data entries

303 entries across 303 versions & 1 rubygems

Version Path
trackler-2.2.1.105 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.104 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.103 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.102 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.101 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.100 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.99 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.98 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.97 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.96 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.95 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.94 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.93 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.92 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.91 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.90 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.89 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.88 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.87 tracks/perl5/exercises/grade-school/grade_school.t
trackler-2.2.1.86 tracks/perl5/exercises/grade-school/grade_school.t