package Ġcom . o hel she m . app . tests . controller Ċ Ċ import Ġcom . o hel she m . api . model . Hour Ċ import Ġcom . o hel she m . app . controller . timetable . Base Time table Controller Ċ import Ġcom . o hel she m . app . controller . timetable . Time table Controller Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue ĊĊ Ċ class ĠTime table Controller Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtime table Controller : ĠTime table Controller ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġtime table Controller Ġ= ĠTime table Controller Impl () ĊĠĠĠĠĠĠĠ Ġtime table Controller . init () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Does Learn Of Friday () Ġ= ĠassertEquals ( timetable Controller . lear ns On Friday , Ġtrue ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġbefore School () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 3 , Ġhour Ġ= Ġ 7 , Ġminutes Now Ġ= Ġ 2 7 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . time To Hour , Ġ 3 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 2 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// region ĠDuring Ġschool Ġtime ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠOn Start Of First Lesson () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 3 , Ġhour Ġ= Ġ 8 , Ġminutes Now Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠassertTrue (! hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . time To Hour , Ġ 4 5 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 2 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠIn Middle Of Lesson () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 3 , Ġhour Ġ= Ġ 1 0 , Ġminutes Now Ġ= Ġ 1 8 ) ĊĠĠĠĠĠĠĠ ĠassertTrue (! hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . time To Hour , Ġ 1 7 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 3 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 4 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠOn EndOf Lesson () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 3 , Ġhour Ġ= Ġ 1 0 , Ġminutes Now Ġ= Ġ 3 5 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . time To Hour , Ġ 5 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 4 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 5 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠOn Break () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 3 , Ġhour Ġ= Ġ 1 0 , Ġminutes Now Ġ= Ġ 3 8 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . time To Hour , Ġ 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 4 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 5 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠIn Last Hour () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 3 , Ġhour Ġ= Ġ 1 7 , Ġminutes Now Ġ= Ġ 2 3 ) ĊĠĠĠĠĠĠĠ ĠassertTrue (! hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 3 ), Ġhour ( 1 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 4 ), Ġhour ( 1 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠIn Last Hour OfWeek () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 6 , Ġhour Ġ= Ġ 1 7 , Ġminutes Now Ġ= Ġ 2 3 ) ĊĠĠĠĠĠĠĠ ĠassertTrue (! hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 6 ), Ġhour ( 1 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 1 ), Ġhour ( 1 )]) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠAfter Ġschool ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠAfter School () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 3 , Ġhour Ġ= Ġ 1 7 , Ġminutes Now Ġ= Ġ 5 0 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 4 ), Ġhour ( 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 4 ), Ġhour ( 2 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠAfter School On Thursday () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 5 , Ġhour Ġ= Ġ 1 9 , Ġminutes Now Ġ= Ġ 4 2 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 6 ), Ġhour ( 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 6 ), Ġhour ( 2 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠAfter School On Friday () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 6 , Ġhour Ġ= Ġ 2 0 , Ġminutes Now Ġ= Ġ 1 7 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 1 ), Ġhour ( 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 1 ), Ġhour ( 2 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġon Saturday () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhour Data Ġ= Ġtime table Controller . get Hour Data ( day Ġ= Ġ 7 , Ġhour Ġ= Ġ 1 4 , Ġminutes Now Ġ= Ġ 2 0 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( hour Data . is Before ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . hour , Ġtime table Controller [ day ( 1 ), Ġhour ( 1 )]) ĊĠĠĠĠĠĠĠ ĠassertEquals ( hour Data . next Hour , Ġtime table Controller [ day ( 1 ), Ġhour ( 2 )]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhour ( hour : ĠInt ): ĠInt Ġ= Ġhour Ġ- Ġ 1 ĊĊĠĠĠ Ġprivate Ġfun Ġday ( day : ĠInt ): ĠInt Ġ= Ġday Ġ- Ġ 1 ĊĊĠĠĠ Ġprivate Ġclass ĠTime table Controller Impl Ġ: ĠBase Time table Controller () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Ġ= ĠArray ( 6 ) Ġ{ Ġday Ġ-> ĠArray ( 1 1 ) Ġ{ Ġhour Ġ-> ĠHour (" day : Ġ${ day Ġ+ Ġ 1 }", Ġ" hour : Ġ${ hour Ġ+ Ġ 1 }") Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }