Skip to content

isbn-verifier 2.7.0#745

Merged
petertseng merged 7 commits intoexercism:masterfrom
petertseng:isbn
Nov 20, 2018
Merged

isbn-verifier 2.7.0#745
petertseng merged 7 commits intoexercism:masterfrom
petertseng:isbn

Conversation

@petertseng
Copy link
Copy Markdown
Member

No description provided.

2.0.0:
Change property name from isbn to isValid. Doesn't affect how Rust track
translates the property name to Rust.
exercism/problem-specifications#999

2.1.0:
Move inputs to input object
exercism/problem-specifications#1053
@petertseng petertseng added the sync/tests Keep a test suite/version in sync with exercism/problem-specifications label Nov 19, 2018
rpottsoh and others added 6 commits November 19, 2018 00:25
Set new test case to be 3-598-P1581-X.
It should avoid solutions to pass - when inside characters (P) is treat as 0.
3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 0 * 6 + 1 * 5 + 5 * 4 + 8 * 3 + 1 * 2 + 10 * 1 = 264
264 is divisible by 11.

The previous case did NOT have this property:
3 * 10 + 5 * 9 + 9 * 8 + 8 * 7 + 2 * 6 + 0 * 5 + 5 * 4 + 0 * 3 + 7 * 2 + 0 * 1 = 249
249 is NOT divisible by 11.

exercism/problem-specifications#1212
exercism/problem-specifications#1217
```
  1 * 10
+ 3 * 9
+ 4 * 8
+ 4 * 7
+ 5 * 6
+ 6 * 5
+ 7 * 4
+ 2 * 3
+ 9 * 2
= 209
```

209 is divisible by 11.

Thus, an implementation that appends 0 will incorrectly accept this case.

exercism/problem-specifications#1216
exercism/problem-specifications#1221
This is a test case that would be accepted by an implementation where an
invalid character is simply dropped.

exercism/problem-specifications#1218
exercism/problem-specifications#1245
If your code verify the isbn length to be only less than or equal to 10,
it will accept some ISBN with less than 10 digits which still satisfy
other rules, being "00" a case which could be considered ISBN by some
"almost correct" solutions missing this consideration.

exercism/problem-specifications#1223
exercism/problem-specifications#1251
exercism/problem-specifications#1252
This commit adds an input that will be incorrectly validated by
algorithms that don't explicitly check the length of their inputs, as
discussed in:
exercism/problem-specifications#1199
exercism/problem-specifications#993

For example, if an algorithm only checks the first (or last) ten
digits of the input, ignoring leftovers, it will pass the current test
suite even though it doesn't correctly implement the spec.

exercism/problem-specifications#1255
@petertseng petertseng merged commit 95ec2ec into exercism:master Nov 20, 2018
@petertseng petertseng deleted the isbn branch November 20, 2018 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sync/tests Keep a test suite/version in sync with exercism/problem-specifications

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants