@@ -3,41 +3,17 @@ import { generateGrayCodes } from '../GrayCodes.js'
3
3
/**
4
4
* Test cases for the generateGrayCodes function.
5
5
*/
6
+ const testCases = [
7
+ { n : 0 , expected : [ 0 ] } ,
8
+ { n : 1 , expected : [ 0 , 1 ] } ,
9
+ { n : 2 , expected : [ 0 , 1 , 3 , 2 ] } ,
10
+ { n : 3 , expected : [ 0 , 1 , 3 , 2 , 6 , 7 , 5 , 4 ] } ,
11
+ { n : 4 , expected : [ 0 , 1 , 3 , 2 , 6 , 7 , 5 , 4 , 12 , 13 , 15 , 14 , 10 , 11 , 9 , 8 ] } ,
12
+ ] ;
6
13
7
- test ( 'Generate Gray codes for n=3' , ( ) => {
8
- const n = 3
9
- const expectedGrayCodes = [ 0 , 1 , 3 , 2 , 6 , 7 , 5 , 4 ]
10
- const grayCodes = generateGrayCodes ( n )
11
- expect ( grayCodes ) . toEqual ( expectedGrayCodes )
12
- } )
13
- test ( 'Generate Gray codes for n=0' , ( ) => {
14
- const n = 0 ;
15
- const expectedGrayCodes = [ 0 ] ;
14
+ testCases . forEach ( ( { n, expected } ) => {
15
+ test ( `Generate Gray codes for n=${ n } ` , ( ) => {
16
16
const grayCodes = generateGrayCodes ( n ) ;
17
- expect ( grayCodes ) . toEqual ( expectedGrayCodes ) ;
18
- } ) ;
19
-
20
- test ( 'Generate Gray codes for n=1' , ( ) => {
21
- const n = 1 ;
22
- const expectedGrayCodes = [ 0 , 1 ] ;
23
- const grayCodes = generateGrayCodes ( n ) ;
24
- expect ( grayCodes ) . toEqual ( expectedGrayCodes ) ;
25
- } ) ;
26
-
27
- test ( 'Generate Gray codes for n=4' , ( ) => {
28
- const n = 4 ;
29
- const expectedGrayCodes = [
30
- 0 , 1 , 3 , 2 , 6 , 7 , 5 , 4 , 12 , 13 , 15 , 14 , 10 , 11 , 9 , 8
31
- ] ;
32
- const grayCodes = generateGrayCodes ( n ) ;
33
- expect ( grayCodes ) . toEqual ( expectedGrayCodes ) ;
34
- } ) ;
35
-
36
- test ( 'Generate Gray codes for n=5' , ( ) => {
37
- const n = 5 ;
38
- const expectedGrayCodes = [
39
- 0 , 1 , 3 , 2 , 6 , 7 , 5 , 4 , 12 , 13 , 15 , 14 , 10 , 11 , 9 , 8 , 24 , 25 , 27 , 26 , 30 , 31 , 29 , 28 , 20 , 21 , 23 , 22 , 18 , 19 , 17 , 16
40
- ] ;
41
- const grayCodes = generateGrayCodes ( n ) ;
42
- expect ( grayCodes ) . toEqual ( expectedGrayCodes ) ;
17
+ expect ( grayCodes ) . toEqual ( expected ) ;
43
18
} ) ;
19
+ } ) ;
0 commit comments