Skip to content

Commit 4695965

Browse files
Merge pull request #1114 from ErikSchierboom/largest-series-product-input
largest-series-product: Apply new "input" policy
2 parents 8e98df7 + 92b86a8 commit 4695965

File tree

1 file changed

+62
-33
lines changed

1 file changed

+62
-33
lines changed
Lines changed: 62 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
{
22
"exercise": "largest-series-product",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"comments": [
55
"A negative expected value means the input is invalid.",
66
"Different languages may handle this differently.",
77
"e.g. raise exceptions, return (int, error), return Option<int>, etc.",
8-
98
"Some languages specifically test the string->digits conversion",
109
"and the 'slices of size N' operation.",
1110
"These cases *deliberately* do not cover those two operations.",
@@ -18,71 +17,91 @@
1817
{
1918
"description": "finds the largest product if span equals length",
2019
"property": "largestProduct",
21-
"digits": "29",
22-
"span": 2,
20+
"input": {
21+
"digits": "29",
22+
"span": 2
23+
},
2324
"expected": 18
2425
},
2526
{
2627
"description": "can find the largest product of 2 with numbers in order",
2728
"property": "largestProduct",
28-
"digits": "0123456789",
29-
"span": 2,
29+
"input": {
30+
"digits": "0123456789",
31+
"span": 2
32+
},
3033
"expected": 72
3134
},
3235
{
3336
"description": "can find the largest product of 2",
3437
"property": "largestProduct",
35-
"digits": "576802143",
36-
"span": 2,
38+
"input": {
39+
"digits": "576802143",
40+
"span": 2
41+
},
3742
"expected": 48
3843
},
3944
{
4045
"description": "can find the largest product of 3 with numbers in order",
4146
"property": "largestProduct",
42-
"digits": "0123456789",
43-
"span": 3,
47+
"input": {
48+
"digits": "0123456789",
49+
"span": 3
50+
},
4451
"expected": 504
4552
},
4653
{
4754
"description": "can find the largest product of 3",
4855
"property": "largestProduct",
49-
"digits": "1027839564",
50-
"span": 3,
56+
"input": {
57+
"digits": "1027839564",
58+
"span": 3
59+
},
5160
"expected": 270
5261
},
5362
{
5463
"description": "can find the largest product of 5 with numbers in order",
5564
"property": "largestProduct",
56-
"digits": "0123456789",
57-
"span": 5,
65+
"input": {
66+
"digits": "0123456789",
67+
"span": 5
68+
},
5869
"expected": 15120
5970
},
6071
{
6172
"description": "can get the largest product of a big number",
6273
"property": "largestProduct",
63-
"digits": "73167176531330624919225119674426574742355349194934",
64-
"span": 6,
74+
"input": {
75+
"digits": "73167176531330624919225119674426574742355349194934",
76+
"span": 6
77+
},
6578
"expected": 23520
6679
},
6780
{
6881
"description": "reports zero if the only digits are zero",
6982
"property": "largestProduct",
70-
"digits": "0000",
71-
"span": 2,
83+
"input": {
84+
"digits": "0000",
85+
"span": 2
86+
},
7287
"expected": 0
7388
},
7489
{
7590
"description": "reports zero if all spans include zero",
7691
"property": "largestProduct",
77-
"digits": "99099",
78-
"span": 3,
92+
"input": {
93+
"digits": "99099",
94+
"span": 3
95+
},
7996
"expected": 0
8097
},
8198
{
8299
"description": "rejects span longer than string length",
83100
"property": "largestProduct",
84-
"digits": "123",
85-
"span": 4,
101+
"input": {
102+
"digits": "123",
103+
"span": 4
104+
},
86105
"expected": -1
87106
},
88107
{
@@ -102,8 +121,10 @@
102121
],
103122
"description": "reports 1 for empty string and empty product (0 span)",
104123
"property": "largestProduct",
105-
"digits": "",
106-
"span": 0,
124+
"input": {
125+
"digits": "",
126+
"span": 0
127+
},
107128
"expected": 1
108129
},
109130
{
@@ -113,30 +134,38 @@
113134
],
114135
"description": "reports 1 for nonempty string and empty product (0 span)",
115136
"property": "largestProduct",
116-
"digits": "123",
117-
"span": 0,
137+
"input": {
138+
"digits": "123",
139+
"span": 0
140+
},
118141
"expected": 1
119142
},
120143
{
121144
"description": "rejects empty string and nonzero span",
122145
"property": "largestProduct",
123-
"digits": "",
124-
"span": 1,
146+
"input": {
147+
"digits": "",
148+
"span": 1
149+
},
125150
"expected": -1
126151
},
127152
{
128153
"description": "rejects invalid character in digits",
129154
"property": "largestProduct",
130-
"digits": "1234a5",
131-
"span": 2,
155+
"input": {
156+
"digits": "1234a5",
157+
"span": 2
158+
},
132159
"expected": -1
133160
},
134161
{
135162
"description": "rejects negative span",
136163
"property": "largestProduct",
137-
"digits": "12345",
138-
"span": -1,
164+
"input": {
165+
"digits": "12345",
166+
"span": -1
167+
},
139168
"expected": -1
140169
}
141170
]
142-
}
171+
}

0 commit comments

Comments
 (0)