1
1
{
2
2
"exercise" : " largest-series-product" ,
3
- "version" : " 1.0 .0" ,
3
+ "version" : " 1.1 .0" ,
4
4
"comments" : [
5
5
" A negative expected value means the input is invalid." ,
6
6
" Different languages may handle this differently." ,
7
7
" e.g. raise exceptions, return (int, error), return Option<int>, etc." ,
8
-
9
8
" Some languages specifically test the string->digits conversion" ,
10
9
" and the 'slices of size N' operation." ,
11
10
" These cases *deliberately* do not cover those two operations." ,
18
17
{
19
18
"description" : " finds the largest product if span equals length" ,
20
19
"property" : " largestProduct" ,
21
- "digits" : " 29" ,
22
- "span" : 2 ,
20
+ "input" : {
21
+ "digits" : " 29" ,
22
+ "span" : 2
23
+ },
23
24
"expected" : 18
24
25
},
25
26
{
26
27
"description" : " can find the largest product of 2 with numbers in order" ,
27
28
"property" : " largestProduct" ,
28
- "digits" : " 0123456789" ,
29
- "span" : 2 ,
29
+ "input" : {
30
+ "digits" : " 0123456789" ,
31
+ "span" : 2
32
+ },
30
33
"expected" : 72
31
34
},
32
35
{
33
36
"description" : " can find the largest product of 2" ,
34
37
"property" : " largestProduct" ,
35
- "digits" : " 576802143" ,
36
- "span" : 2 ,
38
+ "input" : {
39
+ "digits" : " 576802143" ,
40
+ "span" : 2
41
+ },
37
42
"expected" : 48
38
43
},
39
44
{
40
45
"description" : " can find the largest product of 3 with numbers in order" ,
41
46
"property" : " largestProduct" ,
42
- "digits" : " 0123456789" ,
43
- "span" : 3 ,
47
+ "input" : {
48
+ "digits" : " 0123456789" ,
49
+ "span" : 3
50
+ },
44
51
"expected" : 504
45
52
},
46
53
{
47
54
"description" : " can find the largest product of 3" ,
48
55
"property" : " largestProduct" ,
49
- "digits" : " 1027839564" ,
50
- "span" : 3 ,
56
+ "input" : {
57
+ "digits" : " 1027839564" ,
58
+ "span" : 3
59
+ },
51
60
"expected" : 270
52
61
},
53
62
{
54
63
"description" : " can find the largest product of 5 with numbers in order" ,
55
64
"property" : " largestProduct" ,
56
- "digits" : " 0123456789" ,
57
- "span" : 5 ,
65
+ "input" : {
66
+ "digits" : " 0123456789" ,
67
+ "span" : 5
68
+ },
58
69
"expected" : 15120
59
70
},
60
71
{
61
72
"description" : " can get the largest product of a big number" ,
62
73
"property" : " largestProduct" ,
63
- "digits" : " 73167176531330624919225119674426574742355349194934" ,
64
- "span" : 6 ,
74
+ "input" : {
75
+ "digits" : " 73167176531330624919225119674426574742355349194934" ,
76
+ "span" : 6
77
+ },
65
78
"expected" : 23520
66
79
},
67
80
{
68
81
"description" : " reports zero if the only digits are zero" ,
69
82
"property" : " largestProduct" ,
70
- "digits" : " 0000" ,
71
- "span" : 2 ,
83
+ "input" : {
84
+ "digits" : " 0000" ,
85
+ "span" : 2
86
+ },
72
87
"expected" : 0
73
88
},
74
89
{
75
90
"description" : " reports zero if all spans include zero" ,
76
91
"property" : " largestProduct" ,
77
- "digits" : " 99099" ,
78
- "span" : 3 ,
92
+ "input" : {
93
+ "digits" : " 99099" ,
94
+ "span" : 3
95
+ },
79
96
"expected" : 0
80
97
},
81
98
{
82
99
"description" : " rejects span longer than string length" ,
83
100
"property" : " largestProduct" ,
84
- "digits" : " 123" ,
85
- "span" : 4 ,
101
+ "input" : {
102
+ "digits" : " 123" ,
103
+ "span" : 4
104
+ },
86
105
"expected" : -1
87
106
},
88
107
{
102
121
],
103
122
"description" : " reports 1 for empty string and empty product (0 span)" ,
104
123
"property" : " largestProduct" ,
105
- "digits" : " " ,
106
- "span" : 0 ,
124
+ "input" : {
125
+ "digits" : " " ,
126
+ "span" : 0
127
+ },
107
128
"expected" : 1
108
129
},
109
130
{
113
134
],
114
135
"description" : " reports 1 for nonempty string and empty product (0 span)" ,
115
136
"property" : " largestProduct" ,
116
- "digits" : " 123" ,
117
- "span" : 0 ,
137
+ "input" : {
138
+ "digits" : " 123" ,
139
+ "span" : 0
140
+ },
118
141
"expected" : 1
119
142
},
120
143
{
121
144
"description" : " rejects empty string and nonzero span" ,
122
145
"property" : " largestProduct" ,
123
- "digits" : " " ,
124
- "span" : 1 ,
146
+ "input" : {
147
+ "digits" : " " ,
148
+ "span" : 1
149
+ },
125
150
"expected" : -1
126
151
},
127
152
{
128
153
"description" : " rejects invalid character in digits" ,
129
154
"property" : " largestProduct" ,
130
- "digits" : " 1234a5" ,
131
- "span" : 2 ,
155
+ "input" : {
156
+ "digits" : " 1234a5" ,
157
+ "span" : 2
158
+ },
132
159
"expected" : -1
133
160
},
134
161
{
135
162
"description" : " rejects negative span" ,
136
163
"property" : " largestProduct" ,
137
- "digits" : " 12345" ,
138
- "span" : -1 ,
164
+ "input" : {
165
+ "digits" : " 12345" ,
166
+ "span" : -1
167
+ },
139
168
"expected" : -1
140
169
}
141
170
]
142
- }
171
+ }
0 commit comments