Skip to content

isbn-verifier 2.7.0 #745

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Nov 20, 2018
Merged

isbn-verifier 2.7.0 #745

merged 7 commits into from
Nov 20, 2018

Conversation

petertseng
Copy link
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