@@ -3,129 +3,137 @@ import { getNextElementaryGeneration } from '../Elementary'
33describe ( 'Elementary Cellular Automata' , ( ) => {
44 describe ( 'Rule Errors' , ( ) => {
55 it ( 'Correct' , ( ) => {
6- expect ( ( ) => getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 128 ) ) . not . toThrow ( )
6+ expect ( ( ) =>
7+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 128 )
8+ ) . not . toThrow ( )
79 } )
810
911 it ( 'Less than 0' , ( ) => {
10- expect ( ( ) => getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , - 1 ) ) . toThrow ( )
12+ expect ( ( ) =>
13+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , - 1 )
14+ ) . toThrow ( )
1115 } )
1216
1317 it ( 'Greater than 255' , ( ) => {
14- expect ( ( ) => getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 256 ) ) . toThrow ( )
18+ expect ( ( ) =>
19+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 256 )
20+ ) . toThrow ( )
1521 } )
1622
1723 it ( 'Decimal' , ( ) => {
18- expect ( ( ) => getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 100.4 ) ) . toThrow ( )
24+ expect ( ( ) =>
25+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 100.4 )
26+ ) . toThrow ( )
1927 } )
2028 } )
2129
2230 describe ( 'Rule 54 Iterations' , ( ) => {
2331 it ( 'Generation 1' , ( ) => {
24- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 54 ) ) . toEqual ( [
25- 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0
26- ] )
32+ expect (
33+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 54 )
34+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] )
2735 } )
2836 it ( 'Generation 2' , ( ) => {
29- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] , 54 ) ) . toEqual ( [
30- 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0
31- ] )
37+ expect (
38+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] , 54 )
39+ ) . toEqual ( [ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ] )
3240 } )
3341 it ( 'Generation 3' , ( ) => {
34- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ] , 54 ) ) . toEqual ( [
35- 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0
36- ] )
42+ expect (
43+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ] , 54 )
44+ ) . toEqual ( [ 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 ] )
3745 } )
3846 it ( 'Generation 4' , ( ) => {
39- expect ( getNextElementaryGeneration ( [ 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 ] , 54 ) ) . toEqual ( [
40- 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0
41- ] )
47+ expect (
48+ getNextElementaryGeneration ( [ 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 ] , 54 )
49+ ) . toEqual ( [ 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 ] )
4250 } )
4351 } )
4452
4553 describe ( 'Rule 222 Iterations' , ( ) => {
4654 it ( 'Generation 1' , ( ) => {
47- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 222 ) ) . toEqual ( [
48- 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0
49- ] )
55+ expect (
56+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 222 )
57+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] )
5058 } )
5159 it ( 'Generation 2' , ( ) => {
52- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] , 222 ) ) . toEqual ( [
53- 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0
54- ] )
60+ expect (
61+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] , 222 )
62+ ) . toEqual ( [ 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 ] )
5563 } )
5664 it ( 'Generation 3' , ( ) => {
57- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 ] , 222 ) ) . toEqual ( [
58- 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0
59- ] )
65+ expect (
66+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 ] , 222 )
67+ ) . toEqual ( [ 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 ] )
6068 } )
6169 it ( 'Generation 4' , ( ) => {
62- expect ( getNextElementaryGeneration ( [ 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 ] , 222 ) ) . toEqual ( [
63- 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0
64- ] )
70+ expect (
71+ getNextElementaryGeneration ( [ 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 ] , 222 )
72+ ) . toEqual ( [ 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 ] )
6573 } )
6674 } )
6775
6876 describe ( 'Rule 60 Iterations' , ( ) => {
6977 it ( 'Generation 1' , ( ) => {
70- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 60 ) ) . toEqual ( [
71- 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0
72- ] )
78+ expect (
79+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 60 )
80+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 ] )
7381 } )
7482 it ( 'Generation 2' , ( ) => {
75- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 ] , 60 ) ) . toEqual ( [
76- 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0
77- ] )
83+ expect (
84+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 ] , 60 )
85+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 ] )
7886 } )
7987 it ( 'Generation 3' , ( ) => {
80- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 ] , 60 ) ) . toEqual ( [
81- 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0
82- ] )
88+ expect (
89+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 ] , 60 )
90+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0 ] )
8391 } )
8492 it ( 'Generation 4' , ( ) => {
85- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0 ] , 60 ) ) . toEqual ( [
86- 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0
87- ] )
93+ expect (
94+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0 ] , 60 )
95+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 ] )
8896 } )
8997 } )
9098
9199 describe ( 'Rule 90 Iterations' , ( ) => {
92100 it ( 'Generation 1' , ( ) => {
93- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 90 ) ) . toEqual ( [
94- 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0
95- ] )
101+ expect (
102+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 90 )
103+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 ] )
96104 } )
97105 it ( 'Generation 2' , ( ) => {
98- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 ] , 90 ) ) . toEqual ( [
99- 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0
100- ] )
106+ expect (
107+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 ] , 90 )
108+ ) . toEqual ( [ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ] )
101109 } )
102110 it ( 'Generation 3' , ( ) => {
103- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ] , 90 ) ) . toEqual ( [
104- 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0
105- ] )
111+ expect (
112+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ] , 90 )
113+ ) . toEqual ( [ 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 ] )
106114 } )
107115 it ( 'Generation 4' , ( ) => {
108- expect ( getNextElementaryGeneration ( [ 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 ] , 90 ) ) . toEqual ( [
109- 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0
110- ] )
116+ expect (
117+ getNextElementaryGeneration ( [ 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 ] , 90 )
118+ ) . toEqual ( [ 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 ] )
111119 } )
112120 } )
113121
114122 describe ( 'Rule 30 Iterations' , ( ) => {
115123 it ( 'Generation 1' , ( ) => {
116- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 30 ) ) . toEqual ( [
117- 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0
118- ] )
124+ expect (
125+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ] , 30 )
126+ ) . toEqual ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] )
119127 } )
120128 it ( 'Generation 2' , ( ) => {
121- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] , 30 ) ) . toEqual ( [
122- 0 , 0 , 0 , 1 , 1 , 0 , 0 , 1 , 0 , 0 , 0
123- ] )
129+ expect (
130+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ] , 30 )
131+ ) . toEqual ( [ 0 , 0 , 0 , 1 , 1 , 0 , 0 , 1 , 0 , 0 , 0 ] )
124132 } )
125133 it ( 'Generation 3' , ( ) => {
126- expect ( getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 1 , 0 , 0 , 1 , 0 , 0 , 0 ] , 30 ) ) . toEqual ( [
127- 0 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 0
128- ] )
134+ expect (
135+ getNextElementaryGeneration ( [ 0 , 0 , 0 , 1 , 1 , 0 , 0 , 1 , 0 , 0 , 0 ] , 30 )
136+ ) . toEqual ( [ 0 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 0 ] )
129137 } )
130138 } )
131139} )
0 commit comments