File tree Expand file tree Collapse file tree 4 files changed +28
-8
lines changed Expand file tree Collapse file tree 4 files changed +28
-8
lines changed Original file line number Diff line number Diff line change 8787
8888## Documentation
8989
90- Is hosted on [ Deno Doc] ( https://doc.deno.land/https://deno.land/x/eloq/mod.ts ) 📄
90+ Is hosted on [ Deno Doc] ( https://doc.deno.land/https://deno.land/x/eloq/mod.ts )
91+ 📄
9192
9293## Support
9394
Original file line number Diff line number Diff line change 1+ function fizzBuzzExpected ( max : number ) {
2+ return Array . from ( { length : max } , ( _ , i ) => {
3+ const n = i + 1 ;
4+
5+ if ( n % 15 === 0 ) return "FizzBuzz" ;
6+ if ( n % 3 === 0 ) return "Fizz" ;
7+ if ( n % 5 === 0 ) return "Buzz" ;
8+
9+ return n ;
10+ } ) ;
11+ }
Original file line number Diff line number Diff line change @@ -17,13 +17,21 @@ Deno.test("[fizzBuzz]", () => {
1717 FIZZ ,
1818 13 ,
1919 14 ,
20- FIZZ ,
2120 FIZZ_BUZZ ,
2221 ] ;
2322
2423 assertEquals ( fizzBuzz ( 15 ) , expected ) ;
2524} ) ;
2625
26+ Deno . test ( "[fizzBuzz] spot check" , ( ) => {
27+ const result = fizzBuzz ( 20 ) ;
28+
29+ assertEquals ( result [ 2 ] , FIZZ ) ;
30+ assertEquals ( result [ 4 ] , BUZZ ) ;
31+ assertEquals ( result [ 14 ] , FIZZ_BUZZ ) ;
32+ assertEquals ( result [ 19 ] , BUZZ ) ;
33+ } ) ;
34+
2735Deno . test ( "[isDivisbleBy]" , ( ) => {
2836 assert ( divisibleBy ( 15 , 3 ) ) ;
2937 assert ( divisibleBy ( 15 , 5 ) ) ;
Original file line number Diff line number Diff line change @@ -7,24 +7,24 @@ export const FIZZ = "Fizz";
77export const BUZZ = "Buzz" ;
88export const FIZZ_BUZZ = "FizzBuzz" ;
99
10+ export type FizzBuzz = typeof FIZZ | typeof BUZZ | typeof FIZZ_BUZZ | number ;
11+
1012export function fizzBuzz ( max = 100 ) {
11- const result : ( typeof FIZZ | typeof BUZZ | typeof FIZZ_BUZZ | number ) [ ] = [ ] ;
13+ const result : FizzBuzz [ ] = [ ] ;
1214
1315 for ( let number = 1 ; number <= max ; number ++ ) {
1416 const fizz = divisibleBy ( number , 3 ) ;
1517 const buzz = divisibleBy ( number , 5 ) ;
1618
17- if ( fizz ) {
19+ if ( fizz && buzz ) {
20+ result . push ( FIZZ_BUZZ ) ;
21+ } else if ( fizz ) {
1822 result . push ( FIZZ ) ;
1923 } else if ( buzz ) {
2024 result . push ( BUZZ ) ;
2125 } else {
2226 result . push ( number ) ;
2327 }
24-
25- if ( fizz && buzz ) {
26- result . push ( FIZZ_BUZZ ) ;
27- }
2828 }
2929
3030 return result ;
You can’t perform that action at this time.
0 commit comments