@@ -11,7 +11,7 @@ function fiveHoursStatus(hours){
1111 const a = Math . floor ( hours / 5 ) ;
1212 if ( a == 0 )
1313 return "OOOO" ;
14- else if ( a == 1 )
14+ else if ( a == 1 )
1515 return "ROOO" ;
1616 else if ( a == 2 )
1717 return "RROO" ;
@@ -21,6 +21,40 @@ function fiveHoursStatus(hours){
2121 return "RRRR" ;
2222}
2323
24+ function oneHourStatus ( hours ) {
25+ const a = hours % 5 ;
26+ if ( a == 1 )
27+ return "ROOO" ;
28+ else if ( a == 2 )
29+ return "RROO" ;
30+ else if ( a == 3 )
31+ return "RRRO" ;
32+ else if ( a == 4 )
33+ return "RRRR" ;
34+ else
35+ return "OOOO" ;
36+ }
37+
38+ function fiveMinuteStatus ( minutes ) {
39+ const b = Math . floor ( minutes / 5 ) ;
40+ let string = "OOOOOOOOOOO" ;
41+ if ( b == 12 ) {
42+ return string ;
43+ } else {
44+ let array = string . split ( "" ) ;
45+ for ( var i = 0 ; i < b ; i ++ ) {
46+ if ( ( i + 1 ) % 3 == 0 ) {
47+ array [ i ] = "R" ;
48+ } else {
49+ array [ i ] = "Y" ;
50+ }
51+ }
52+ return array . join ( "" ) ;
53+ }
54+ }
55+
56+
57+
2458describe ( "Berlin Clock" , ( ) => {
2559
2660 it ( "Given a 1 second, returns OFF" , ( ) => {
@@ -38,19 +72,94 @@ describe("Berlin Clock", () => {
3872 it ( "Given 1 hour, returns OOOO" , ( ) => {
3973 assert . equal ( fiveHoursStatus ( 1 ) , "OOOO" )
4074 } ) ;
75+
4176 it ( "Given 5 hour, returns ROOO" , ( ) => {
4277 assert . equal ( fiveHoursStatus ( 5 ) , "ROOO" )
4378 } ) ;
79+
4480 it ( "Given 10 hour, returns RROO" , ( ) => {
4581 assert . equal ( fiveHoursStatus ( 10 ) , "RROO" )
4682 } ) ;
83+
4784 it ( "Given 12 hour, returns RROO" , ( ) => {
4885 assert . equal ( fiveHoursStatus ( 12 ) , "RROO" )
4986 } ) ;
87+
5088 it ( "Given 15 hour, returns RRRO" , ( ) => {
5189 assert . equal ( fiveHoursStatus ( 15 ) , "RRRO" )
5290 } ) ;
91+
5392 it ( "Given 20 hour, returns RRRR" , ( ) => {
5493 assert . equal ( fiveHoursStatus ( 20 ) , "RRRR" )
5594 } ) ;
95+
96+ it ( "Given 1 hour, returns ROOO" , ( ) => {
97+ assert . equal ( oneHourStatus ( 1 ) , "ROOO" )
98+ } ) ;
99+
100+ it ( "Given 2 hours, returns RROO" , ( ) => {
101+ assert . equal ( oneHourStatus ( 2 ) , "RROO" )
102+ } ) ;
103+
104+ it ( "Given 3 hours, returns RRRO" , ( ) => {
105+ assert . equal ( oneHourStatus ( 3 ) , "RRRO" )
106+ } ) ;
107+
108+ it ( "Given 4 hours, returns RRRR" , ( ) => {
109+ assert . equal ( oneHourStatus ( 4 ) , "RRRR" )
110+ } ) ;
111+
112+ it ( "Given 5 hours, returns OOOO" , ( ) => {
113+ assert . equal ( oneHourStatus ( 5 ) , "OOOO" )
114+ } ) ;
115+
116+ it ( " Given 5 minutes, returns YOOOOOOOOOO" , ( ) => {
117+ assert . equal ( fiveMinuteStatus ( 5 ) , "YOOOOOOOOOO" )
118+ } ) ;
119+
120+ it ( " Given 10 minutes, returns YYOOOOOOOOO" , ( ) => {
121+ assert . equal ( fiveMinuteStatus ( 10 ) , "YYOOOOOOOOO" )
122+ } ) ;
123+
124+ it ( " Given 15 minutes, returns YYROOOOOOOO" , ( ) => {
125+ assert . equal ( fiveMinuteStatus ( 15 ) , "YYROOOOOOOO" )
126+ } ) ;
127+
128+ it ( " Given 20 minutes, returns YYRYOOOOOOO" , ( ) => {
129+ assert . equal ( fiveMinuteStatus ( 20 ) , "YYRYOOOOOOO" )
130+ } ) ;
131+
132+ it ( " Given 25 minutes, returns YYRYYOOOOOO" , ( ) => {
133+ assert . equal ( fiveMinuteStatus ( 25 ) , "YYRYYOOOOOO" )
134+ } ) ;
135+
136+ it ( " Given 30 minutes, returns YYRYYROOOOO" , ( ) => {
137+ assert . equal ( fiveMinuteStatus ( 30 ) , "YYRYYROOOOO" )
138+ } ) ;
139+
140+ it ( " Given 35 minutes, returns YYRYYRYOOOO" , ( ) => {
141+ assert . equal ( fiveMinuteStatus ( 35 ) , "YYRYYRYOOOO" )
142+ } ) ;
143+
144+ it ( " Given 40 minutes, returns YYRYYRYYOOO" , ( ) => {
145+ assert . equal ( fiveMinuteStatus ( 40 ) , "YYRYYRYYOOO" )
146+ } ) ;
147+
148+ it ( " Given 45 minutes, returns YYRYYRYYROO" , ( ) => {
149+ assert . equal ( fiveMinuteStatus ( 45 ) , "YYRYYRYYROO" )
150+ } ) ;
151+
152+ it ( " Given 50 minutes, returns YYRYYRYYRYO" , ( ) => {
153+ assert . equal ( fiveMinuteStatus ( 50 ) , "YYRYYRYYRYO" )
154+ } ) ;
155+
156+ it ( " Given 55 minutes, returns YYRYYRYYRYY" , ( ) => {
157+ assert . equal ( fiveMinuteStatus ( 55 ) , "YYRYYRYYRYY" )
158+ } ) ;
159+
160+ it ( " Given 60 minutes, returns OOOOOOOOOOO" , ( ) => {
161+ assert . equal ( fiveMinuteStatus ( 60 ) , "OOOOOOOOOOO" )
162+ } ) ;
163+
164+
56165} ) ;
0 commit comments