@@ -30,9 +30,6 @@ describe('randomStardate',() => {
3030 1 , 1 , 1 , 1 , 1 , 1 ,
3131 0.5 , 0.5 , 0.5 , 0.5 , 0.5 , 0.5
3232 ) ;
33-
34- // 6 * 0, 6 * 1, 6 * 0.5 and everything else random
35-
3633 for ( let i = 0 ; i < 10_000 ; i ++ ) {
3734 const starDate = randomStardate ( )
3835 expect ( starDate ) . toBeGreaterThanOrEqual ( 41_000 ) ;
@@ -43,12 +40,20 @@ describe('randomStardate',() => {
4340}
4441describe ( 'randomPlanetClass' , ( ) => {
4542 test ( 'planet classes are valid' , ( ) => {
46- const planetClasses = [ 'D' , 'H' , 'J' , 'K' , 'L' , 'M' , 'N' , 'R' , 'T' , 'Y' ] ;
47- for ( let i = 0 ; i < 4 ; i ++ ) {
48- expect ( planetClasses ) . toContain ( randomPlanetClass ( ) )
43+ const expected = 'DHJKLMNRTY'
44+ const seen = { }
45+ for ( let i = 0 ; i < 1_000 ; i ++ ) {
46+ const actual = randomPlanetClass ( )
47+ expect ( expected ) . toContain ( actual )
4948 }
50- } ) ;
51- test ( 'returns a random planet class' , ( ) => {
52- expect ( randomPlanetClass ( ) ) . not . toEqual ( randomPlanetClass ( ) )
53- } ) ;
54- } ) ;
49+ } )
50+ test ( 'all planet classes can be returned' , ( ) => {
51+ const expected = 'DHJKLMNRTY'
52+ const seen = { }
53+ for ( let i = 0 ; i < 1_000 ; i ++ ) {
54+ const actual = randomPlanetClass ( )
55+ seen [ actual ] = true
56+ }
57+ expected ( Object . keys ( seen ) . length ) . toBe ( expected . length ) ;
58+ } )
59+ } )
0 commit comments