From c10ab48c396c2cafd3a1f6a3763205741f1519d1 Mon Sep 17 00:00:00 2001 From: Peter Tseng Date: Mon, 19 Nov 2018 00:09:23 +0000 Subject: [PATCH 1/7] isbn-verifier: no-op declare compliance with 2.1.0 2.0.0: Change property name from isbn to isValid. Doesn't affect how Rust track translates the property name to Rust. https://github.com/exercism/problem-specifications/pull/999 2.1.0: Move inputs to input object https://github.com/exercism/problem-specifications/pull/1053 --- exercises/isbn-verifier/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/isbn-verifier/Cargo.toml b/exercises/isbn-verifier/Cargo.toml index a8e9eb08e..c66a39bea 100644 --- a/exercises/isbn-verifier/Cargo.toml +++ b/exercises/isbn-verifier/Cargo.toml @@ -1,3 +1,3 @@ [package] name = "isbn-verifier" -version = "1.1.0" +version = "2.1.0" From a29be6a833258cb0e146ff2b2848a987c404d93f Mon Sep 17 00:00:00 2001 From: Ryan Potts Date: Sat, 30 Dec 2017 00:13:07 -0500 Subject: [PATCH 2/7] isbn-verifier 2.2.0: add empty isbn case https://github.com/exercism/problem-specifications/issues/1052 https://github.com/exercism/problem-specifications/pull/1055 --- exercises/isbn-verifier/Cargo.toml | 2 +- exercises/isbn-verifier/tests/isbn-verifier.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/exercises/isbn-verifier/Cargo.toml b/exercises/isbn-verifier/Cargo.toml index c66a39bea..109483e36 100644 --- a/exercises/isbn-verifier/Cargo.toml +++ b/exercises/isbn-verifier/Cargo.toml @@ -1,3 +1,3 @@ [package] name = "isbn-verifier" -version = "2.1.0" +version = "2.2.0" diff --git a/exercises/isbn-verifier/tests/isbn-verifier.rs b/exercises/isbn-verifier/tests/isbn-verifier.rs index fc8ffc4f8..8b53d3c34 100644 --- a/exercises/isbn-verifier/tests/isbn-verifier.rs +++ b/exercises/isbn-verifier/tests/isbn-verifier.rs @@ -93,3 +93,9 @@ fn test_special_characters() { fn test_invalid_isbn_with_check_digit_X_instead_of_0() { assert!(!is_valid_isbn("3-598-21515-X")); } + +#[test] +#[ignore] +fn empty_isbn() { + assert!(!is_valid_isbn("")); +} From 33430643dd43c23028bf1321ae2f339d7f9c3a4a Mon Sep 17 00:00:00 2001 From: dnicolaev <33633404+dnicolaev@users.noreply.github.com> Date: Fri, 30 Mar 2018 12:31:24 -0600 Subject: [PATCH 3/7] isbn-verifier 2.3.0: Replace test case - "invalid character in isbn" 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. https://github.com/exercism/problem-specifications/issues/1212 https://github.com/exercism/problem-specifications/pull/1217 --- exercises/isbn-verifier/Cargo.toml | 2 +- exercises/isbn-verifier/tests/isbn-verifier.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exercises/isbn-verifier/Cargo.toml b/exercises/isbn-verifier/Cargo.toml index 109483e36..52c241ee9 100644 --- a/exercises/isbn-verifier/Cargo.toml +++ b/exercises/isbn-verifier/Cargo.toml @@ -1,3 +1,3 @@ [package] name = "isbn-verifier" -version = "2.2.0" +version = "2.3.0" diff --git a/exercises/isbn-verifier/tests/isbn-verifier.rs b/exercises/isbn-verifier/tests/isbn-verifier.rs index 8b53d3c34..e115cebb3 100644 --- a/exercises/isbn-verifier/tests/isbn-verifier.rs +++ b/exercises/isbn-verifier/tests/isbn-verifier.rs @@ -28,7 +28,7 @@ fn test_invalid_character_as_check_digit() { #[test] #[ignore] fn test_invalid_character_in_isbn() { - assert!(!is_valid_isbn("3-598-2K507-0")); + assert!(!is_valid_isbn("3-598-P1581-X")); } #[test] From 2429fd8538c87f94d07384f1ff496b3b1f21ec9f Mon Sep 17 00:00:00 2001 From: Mike Stratton Date: Mon, 9 Apr 2018 21:40:30 -0400 Subject: [PATCH 4/7] isbn-verifier 2.4.0: Add test case with only 9 digits ``` 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. https://github.com/exercism/problem-specifications/issues/1216 https://github.com/exercism/problem-specifications/pull/1221 --- exercises/isbn-verifier/Cargo.toml | 2 +- exercises/isbn-verifier/tests/isbn-verifier.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/exercises/isbn-verifier/Cargo.toml b/exercises/isbn-verifier/Cargo.toml index 52c241ee9..40c79c8b0 100644 --- a/exercises/isbn-verifier/Cargo.toml +++ b/exercises/isbn-verifier/Cargo.toml @@ -1,3 +1,3 @@ [package] name = "isbn-verifier" -version = "2.3.0" +version = "2.4.0" diff --git a/exercises/isbn-verifier/tests/isbn-verifier.rs b/exercises/isbn-verifier/tests/isbn-verifier.rs index e115cebb3..b586b40e0 100644 --- a/exercises/isbn-verifier/tests/isbn-verifier.rs +++ b/exercises/isbn-verifier/tests/isbn-verifier.rs @@ -99,3 +99,9 @@ fn test_invalid_isbn_with_check_digit_X_instead_of_0() { fn empty_isbn() { assert!(!is_valid_isbn("")); } + +#[test] +#[ignore] +fn input_is_9_characters() { + assert!(!is_valid_isbn("134456729")); +} From 2431a62072f5e622d869fff756346f7691b8ad44 Mon Sep 17 00:00:00 2001 From: Corey McCandless Date: Sat, 26 May 2018 08:34:12 -0400 Subject: [PATCH 5/7] isbn-verifier 2.5.0: Check that invalid characters aren't ignored This is a test case that would be accepted by an implementation where an invalid character is simply dropped. https://github.com/exercism/problem-specifications/issues/1218 https://github.com/exercism/problem-specifications/pull/1245 --- exercises/isbn-verifier/Cargo.toml | 2 +- exercises/isbn-verifier/tests/isbn-verifier.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/exercises/isbn-verifier/Cargo.toml b/exercises/isbn-verifier/Cargo.toml index 40c79c8b0..345baa4e9 100644 --- a/exercises/isbn-verifier/Cargo.toml +++ b/exercises/isbn-verifier/Cargo.toml @@ -1,3 +1,3 @@ [package] name = "isbn-verifier" -version = "2.4.0" +version = "2.5.0" diff --git a/exercises/isbn-verifier/tests/isbn-verifier.rs b/exercises/isbn-verifier/tests/isbn-verifier.rs index b586b40e0..8b92517ea 100644 --- a/exercises/isbn-verifier/tests/isbn-verifier.rs +++ b/exercises/isbn-verifier/tests/isbn-verifier.rs @@ -105,3 +105,9 @@ fn empty_isbn() { fn input_is_9_characters() { assert!(!is_valid_isbn("134456729")); } + +#[test] +#[ignore] +fn invalid_characters_are_not_ignored() { + assert!(!is_valid_isbn("3132P34035")); +} From 3adf07151a6c139d709aa56ba3cfb0cb08ab2704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20G=C3=B3mez?= Date: Mon, 18 Jun 2018 20:56:47 -0230 Subject: [PATCH 6/7] isbn-verifier: Add test case for short ISBN 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. https://github.com/exercism/problem-specifications/issues/1223 https://github.com/exercism/problem-specifications/pull/1251 https://github.com/exercism/problem-specifications/pull/1252 --- exercises/isbn-verifier/Cargo.toml | 2 +- exercises/isbn-verifier/tests/isbn-verifier.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/exercises/isbn-verifier/Cargo.toml b/exercises/isbn-verifier/Cargo.toml index 345baa4e9..c09f53af1 100644 --- a/exercises/isbn-verifier/Cargo.toml +++ b/exercises/isbn-verifier/Cargo.toml @@ -1,3 +1,3 @@ [package] name = "isbn-verifier" -version = "2.5.0" +version = "2.6.0" diff --git a/exercises/isbn-verifier/tests/isbn-verifier.rs b/exercises/isbn-verifier/tests/isbn-verifier.rs index 8b92517ea..70ae9b9f3 100644 --- a/exercises/isbn-verifier/tests/isbn-verifier.rs +++ b/exercises/isbn-verifier/tests/isbn-verifier.rs @@ -63,6 +63,12 @@ fn test_invalid_isbn_without_dashes_and_too_long() { assert!(!is_valid_isbn("3598215078X")); } +#[test] +#[ignore] +fn too_short_isbn() { + assert!(!is_valid_isbn("00")); +} + #[test] #[ignore] fn test_invalid_isbn_without_check_digit() { From c9361eb62b6472d64b925b9ca4620d5f201e8543 Mon Sep 17 00:00:00 2001 From: Nathaniel Knight Date: Sun, 1 Jul 2018 14:12:19 +0000 Subject: [PATCH 7/7] isbn-verifier 2.7.0: Catch more incorrect algorithms with "too long" 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: https://github.com/exercism/problem-specifications/issues/1199 https://github.com/exercism/problem-specifications/pull/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. https://github.com/exercism/problem-specifications/pull/1255 --- exercises/isbn-verifier/Cargo.toml | 2 +- exercises/isbn-verifier/tests/isbn-verifier.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/exercises/isbn-verifier/Cargo.toml b/exercises/isbn-verifier/Cargo.toml index c09f53af1..2fa438447 100644 --- a/exercises/isbn-verifier/Cargo.toml +++ b/exercises/isbn-verifier/Cargo.toml @@ -1,3 +1,3 @@ [package] name = "isbn-verifier" -version = "2.6.0" +version = "2.7.0" diff --git a/exercises/isbn-verifier/tests/isbn-verifier.rs b/exercises/isbn-verifier/tests/isbn-verifier.rs index 70ae9b9f3..930f8dd02 100644 --- a/exercises/isbn-verifier/tests/isbn-verifier.rs +++ b/exercises/isbn-verifier/tests/isbn-verifier.rs @@ -75,12 +75,6 @@ fn test_invalid_isbn_without_check_digit() { assert!(!is_valid_isbn("3-598-21507")); } -#[test] -#[ignore] -fn test_invalid_isbn_too_long() { - assert!(!is_valid_isbn("3-598-21507-XX")); -} - #[test] #[ignore] fn test_valid_digits_invalid_length() { @@ -117,3 +111,9 @@ fn input_is_9_characters() { fn invalid_characters_are_not_ignored() { assert!(!is_valid_isbn("3132P34035")); } + +#[test] +#[ignore] +fn too_long_but_contains_a_valid_isbn() { + assert!(!is_valid_isbn("98245726788")); +}