trackler 2.2.1.42 → 2.2.1.43
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/change/metadata.yml +2 -0
- data/problem-specifications/exercises/crypto-square/canonical-data.json +10 -65
- data/tracks/c/bin/run-tests +3 -0
- data/tracks/c/exercises/acronym/test/test_acronym.c +8 -0
- data/tracks/c/exercises/all-your-base/test/test_all_your_base.c +19 -0
- data/tracks/c/exercises/allergies/test/test_allergies.c +13 -0
- data/tracks/c/exercises/anagram/src/anagram.h +2 -2
- data/tracks/c/exercises/anagram/src/example.c +5 -5
- data/tracks/c/exercises/anagram/test/test_anagram.c +39 -29
- data/tracks/c/exercises/atbash-cipher/test/test_atbash_cipher.c +12 -0
- data/tracks/c/exercises/beer-song/test/test_beer_song.c +5 -0
- data/tracks/c/exercises/binary-search/test/test_binary_search.c +10 -0
- data/tracks/c/exercises/binary/test/test_binary.c +14 -0
- data/tracks/c/exercises/bob/test/test_bob.c +16 -0
- data/tracks/c/exercises/clock/test/test_clock.c +34 -0
- data/tracks/c/exercises/difference-of-squares/test/test_difference_of_squares.c +9 -0
- data/tracks/c/exercises/gigasecond/test/test_gigasecond.c +4 -0
- data/tracks/c/exercises/grains/test/test_grains.c +9 -0
- data/tracks/c/exercises/hamming/test/test_hamming.c +12 -0
- data/tracks/c/exercises/isogram/src/example.c +6 -6
- data/tracks/c/exercises/isogram/src/example.h +1 -1
- data/tracks/c/exercises/isogram/test/test_isogram.c +17 -9
- data/tracks/c/exercises/largest-series-product/test/test_largest_series_product.c +15 -0
- data/tracks/c/exercises/leap/test/test_leap.c +4 -0
- data/tracks/c/exercises/nth-prime/test/test_nth_prime.c +4 -0
- data/tracks/c/exercises/nucleotide-count/test/test_nucleotide_count.c +4 -0
- data/tracks/c/exercises/palindrome-products/test/test_palindrome_products.c +1 -0
- data/tracks/c/exercises/pangram/test/test_pangram.c +11 -0
- data/tracks/c/exercises/pascals-triangle/test/test_pascals_triangle.c +5 -0
- data/tracks/c/exercises/perfect-numbers/test/test_perfect_numbers.c +12 -0
- data/tracks/c/exercises/phone-number/test/test_phone_number.c +13 -0
- data/tracks/c/exercises/raindrops/test/test_raindrops.c +17 -0
- data/tracks/c/exercises/react/test/test_react.c +14 -0
- data/tracks/c/exercises/rna-transcription/test/test_rna_transcription.c +7 -0
- data/tracks/c/exercises/robot-simulator/test/test_robot_simulator.c +11 -0
- data/tracks/c/exercises/roman-numerals/test/test_roman_numerals.c +17 -0
- data/tracks/c/exercises/scrabble-score/test/test_scrabble_score.c +10 -0
- data/tracks/c/exercises/sieve/test/test_sieve.c +4 -0
- data/tracks/c/exercises/space-age/test/test_space_age.c +7 -0
- data/tracks/c/exercises/sum-of-multiples/test/test_sum_of_multiples.c +11 -0
- data/tracks/c/exercises/triangle/test/test_triangle.c +15 -0
- data/tracks/c/exercises/word-count/test/test_word_count.c +10 -0
- data/tracks/dart/.travis.yml +2 -7
- data/tracks/dart/bin/check_formatting +9 -0
- data/tracks/dart/exercises/bob/pubspec.lock +26 -26
- data/tracks/dart/exercises/difference-of-squares/pubspec.lock +26 -26
- data/tracks/dart/exercises/gigasecond/pubspec.lock +26 -26
- data/tracks/dart/exercises/hamming/pubspec.lock +26 -26
- data/tracks/dart/exercises/hello-world/pubspec.lock +26 -26
- data/tracks/dart/exercises/leap/pubspec.lock +26 -26
- data/tracks/dart/exercises/rna-transcription/pubspec.lock +26 -26
- data/tracks/dart/exercises/rna-transcription/test/rna_transcription_test.dart +1 -1
- data/tracks/dart/pubspec.lock +42 -30
- data/tracks/dart/pubspec.yaml +3 -3
- data/tracks/dart/test/exercises_test.dart +52 -14
- data/tracks/dart/tool/create-exercise +1 -1
- data/tracks/erlang/.travis.yml +2 -2
- data/tracks/erlang/config.json +10 -0
- data/tracks/erlang/exercises/bank-account/src/example.erl +67 -41
- data/tracks/erlang/exercises/bank-account/test/bank_account_tests.erl +0 -6
- data/tracks/erlang/exercises/luhn/src/example.erl +32 -14
- data/tracks/erlang/exercises/luhn/test/luhn_tests.erl +36 -10
- data/tracks/erlang/exercises/two-fer/README.md +19 -0
- data/tracks/erlang/exercises/two-fer/include/exercism.hrl +11 -0
- data/tracks/erlang/exercises/two-fer/rebar.config +30 -0
- data/tracks/erlang/exercises/two-fer/src/example.erl +11 -0
- data/tracks/erlang/exercises/two-fer/src/two_fer.app.src +9 -0
- data/tracks/erlang/exercises/two-fer/src/two_fer.erl +11 -0
- data/tracks/erlang/exercises/two-fer/test/two_fer_tests.erl +15 -0
- data/tracks/java/config.json +26 -3
- data/tracks/java/exercises/list-ops/.meta/hints.md +4 -0
- data/tracks/javascript/config.json +14 -0
- data/tracks/javascript/docs/ABOUT.md +16 -9
- data/tracks/javascript/exercises/diffie-hellman/README.md +73 -0
- data/tracks/javascript/exercises/diffie-hellman/diffie-hellman.spec.js +73 -0
- data/tracks/javascript/exercises/diffie-hellman/example.js +48 -0
- data/tracks/julia/config.json +1 -1
- data/tracks/python/exercises/accumulate/accumulate.py +1 -1
- data/tracks/python/exercises/allergies/allergies.py +2 -2
- data/tracks/python/exercises/alphametics/alphametics.py +1 -1
- data/tracks/python/exercises/anagram/anagram.py +1 -1
- data/tracks/python/exercises/binary-search/binary_search.py +1 -1
- data/tracks/python/exercises/binary/binary.py +1 -1
- data/tracks/python/exercises/collatz-conjecture/collatz_conjecture.py +1 -1
- data/tracks/python/exercises/crypto-square/crypto_square.py +1 -1
- data/tracks/python/exercises/diamond/diamond.py +1 -1
- data/tracks/python/exercises/grep/grep.py +2 -0
- data/tracks/python/exercises/hello-world/hello_world.py +1 -1
- data/tracks/python/exercises/largest-series-product/largest_series_product.py +1 -1
- data/tracks/python/exercises/minesweeper/minesweeper.py +2 -1
- data/tracks/python/exercises/nucleotide-count/nucleotide_count.py +2 -2
- data/tracks/python/exercises/ocr-numbers/ocr_numbers.py +2 -2
- data/tracks/python/exercises/octal/octal.py +1 -1
- data/tracks/python/exercises/pangram/pangram.py +1 -1
- data/tracks/python/exercises/pascals-triangle/pascals_triangle.py +3 -3
- data/tracks/python/exercises/poker/poker.py +1 -1
- data/tracks/python/exercises/prime-factors/prime_factors.py +1 -1
- data/tracks/python/exercises/protein-translation/protein_translation.py +2 -2
- data/tracks/python/exercises/proverb/proverb.py +1 -1
- data/tracks/python/exercises/queen-attack/queen_attack.py +2 -2
- data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher.py +3 -3
- data/tracks/python/exercises/roman-numerals/roman_numerals.py +1 -1
- data/tracks/python/exercises/rotational-cipher/rotational_cipher.py +1 -1
- data/tracks/python/exercises/say/say.py +1 -1
- data/tracks/python/exercises/secret-handshake/secret_handshake.py +2 -2
- data/tracks/python/exercises/space-age/space_age.py +1 -1
- data/tracks/python/exercises/tournament/tournament.py +1 -1
- data/tracks/python/exercises/trinary/trinary.py +1 -1
- data/tracks/python/exercises/two-fer/two_fer.py +1 -1
- data/tracks/python/exercises/word-count/word_count.py +1 -1
- data/tracks/ruby/lib/generator/exercise_case.rb +1 -1
- data/tracks/ruby/test/generator/exercise_case_test.rb +10 -0
- data/tracks/scala/testgen/src/main/resources/version-check-ignore.txt +1 -2
- data/tracks/sml/exercises/accumulate/README.md +19 -14
- data/tracks/sml/exercises/accumulate/accumulate.sml +1 -1
- data/tracks/sml/exercises/accumulate/example.sml +2 -2
- data/tracks/sml/exercises/accumulate/test.sml +26 -56
- data/tracks/sml/exercises/accumulate/testlib.sml +159 -0
- metadata +15 -2
@@ -8,46 +8,55 @@ void test_square_of_sum_up_to_5(void)
|
|
8
8
|
|
9
9
|
void test_square_of_sum_up_to_10(void)
|
10
10
|
{
|
11
|
+
TEST_IGNORE(); // delete this line to run test
|
11
12
|
TEST_ASSERT_EQUAL(3025, square_of_sum(10));
|
12
13
|
}
|
13
14
|
|
14
15
|
void test_square_of_sum_up_to_100(void)
|
15
16
|
{
|
17
|
+
TEST_IGNORE();
|
16
18
|
TEST_ASSERT_EQUAL(25502500, square_of_sum(100));
|
17
19
|
}
|
18
20
|
|
19
21
|
void test_sum_of_squares_up_to_5(void)
|
20
22
|
{
|
23
|
+
TEST_IGNORE();
|
21
24
|
TEST_ASSERT_EQUAL(55, sum_of_squares(5));
|
22
25
|
}
|
23
26
|
|
24
27
|
void test_sum_of_squares_up_to_10(void)
|
25
28
|
{
|
29
|
+
TEST_IGNORE();
|
26
30
|
TEST_ASSERT_EQUAL(385, sum_of_squares(10));
|
27
31
|
}
|
28
32
|
|
29
33
|
void test_sum_of_squares_up_to_100(void)
|
30
34
|
{
|
35
|
+
TEST_IGNORE();
|
31
36
|
TEST_ASSERT_EQUAL(338350, sum_of_squares(100));
|
32
37
|
}
|
33
38
|
|
34
39
|
void test_difference_of_squares_up_to_0(void)
|
35
40
|
{
|
41
|
+
TEST_IGNORE();
|
36
42
|
TEST_ASSERT_EQUAL(0, difference_of_squares(0));
|
37
43
|
}
|
38
44
|
|
39
45
|
void test_difference_of_squares_up_to_5(void)
|
40
46
|
{
|
47
|
+
TEST_IGNORE();
|
41
48
|
TEST_ASSERT_EQUAL(170, difference_of_squares(5));
|
42
49
|
}
|
43
50
|
|
44
51
|
void test_difference_of_squares_up_to_10(void)
|
45
52
|
{
|
53
|
+
TEST_IGNORE();
|
46
54
|
TEST_ASSERT_EQUAL(2640, difference_of_squares(10));
|
47
55
|
}
|
48
56
|
|
49
57
|
void test_difference_of_squares_up_to_100(void)
|
50
58
|
{
|
59
|
+
TEST_IGNORE();
|
51
60
|
TEST_ASSERT_EQUAL(25164150, difference_of_squares(100));
|
52
61
|
}
|
53
62
|
|
@@ -24,6 +24,7 @@ void test_date(void)
|
|
24
24
|
|
25
25
|
void test_another_date(void)
|
26
26
|
{
|
27
|
+
TEST_IGNORE(); // delete this line to run test
|
27
28
|
time_t expected = construct_date(2009, 2, 19, 1, 46, 40);
|
28
29
|
time_t actual = gigasecond_after(construct_date(1977, 6, 13, 0, 0, 0));
|
29
30
|
TEST_ASSERT(expected == actual);
|
@@ -31,6 +32,7 @@ void test_another_date(void)
|
|
31
32
|
|
32
33
|
void test_third_date(void)
|
33
34
|
{
|
35
|
+
TEST_IGNORE();
|
34
36
|
time_t expected = construct_date(1991, 3, 27, 1, 46, 40);
|
35
37
|
time_t actual = gigasecond_after(construct_date(1959, 7, 19, 0, 0, 0));
|
36
38
|
TEST_ASSERT(expected == actual);
|
@@ -38,6 +40,7 @@ void test_third_date(void)
|
|
38
40
|
|
39
41
|
void test_date_and_time(void)
|
40
42
|
{
|
43
|
+
TEST_IGNORE();
|
41
44
|
time_t expected = construct_date(2046, 10, 2, 23, 46, 40);
|
42
45
|
time_t actual = gigasecond_after(construct_date(2015, 1, 24, 22, 0, 0));
|
43
46
|
TEST_ASSERT(expected == actual);
|
@@ -45,6 +48,7 @@ void test_date_and_time(void)
|
|
45
48
|
|
46
49
|
void test_date_and_time_with_day_rollover(void)
|
47
50
|
{
|
51
|
+
TEST_IGNORE();
|
48
52
|
time_t expected = construct_date(2046, 10, 3, 1, 46, 39);
|
49
53
|
time_t actual = gigasecond_after(construct_date(2015, 1, 24, 23, 59, 59));
|
50
54
|
TEST_ASSERT(expected == actual);
|
@@ -8,46 +8,55 @@ void test_square_1(void)
|
|
8
8
|
|
9
9
|
void test_square_2(void)
|
10
10
|
{
|
11
|
+
TEST_IGNORE(); // delete this line to run test
|
11
12
|
TEST_ASSERT_EQUAL_UINT64(2ul, square(2));
|
12
13
|
}
|
13
14
|
|
14
15
|
void test_square_3(void)
|
15
16
|
{
|
17
|
+
TEST_IGNORE();
|
16
18
|
TEST_ASSERT_EQUAL_UINT64(4ul, square(3));
|
17
19
|
}
|
18
20
|
|
19
21
|
void test_square_4(void)
|
20
22
|
{
|
23
|
+
TEST_IGNORE();
|
21
24
|
TEST_ASSERT_EQUAL_UINT64(8ul, square(4));
|
22
25
|
}
|
23
26
|
|
24
27
|
void test_square_16(void)
|
25
28
|
{
|
29
|
+
TEST_IGNORE();
|
26
30
|
TEST_ASSERT_EQUAL_UINT64(32768ul, square(16));
|
27
31
|
}
|
28
32
|
|
29
33
|
void test_square_32(void)
|
30
34
|
{
|
35
|
+
TEST_IGNORE();
|
31
36
|
TEST_ASSERT_EQUAL_UINT64(2147483648ul, square(32));
|
32
37
|
}
|
33
38
|
|
34
39
|
void test_square_64(void)
|
35
40
|
{
|
41
|
+
TEST_IGNORE();
|
36
42
|
TEST_ASSERT_EQUAL_UINT64(9223372036854775808ul, square(64));
|
37
43
|
}
|
38
44
|
|
39
45
|
void test_square_0_does_not_exist(void)
|
40
46
|
{
|
47
|
+
TEST_IGNORE();
|
41
48
|
TEST_ASSERT_EQUAL_UINT64(0, square(0));
|
42
49
|
}
|
43
50
|
|
44
51
|
void test_square_greater_than_64_does_not_exist(void)
|
45
52
|
{
|
53
|
+
TEST_IGNORE();
|
46
54
|
TEST_ASSERT_EQUAL_UINT64(0, square(65));
|
47
55
|
}
|
48
56
|
|
49
57
|
void test_total(void)
|
50
58
|
{
|
59
|
+
TEST_IGNORE();
|
51
60
|
TEST_ASSERT_EQUAL_UINT64(18446744073709551615ul, total());
|
52
61
|
}
|
53
62
|
|
@@ -8,61 +8,73 @@ void test_empty_strands(void)
|
|
8
8
|
|
9
9
|
void test_rejects_null_strand(void)
|
10
10
|
{
|
11
|
+
TEST_IGNORE(); // delete this line to run test
|
11
12
|
TEST_ASSERT_EQUAL(-1, compute(NULL, "A"));
|
12
13
|
}
|
13
14
|
|
14
15
|
void test_rejects_other_null_strand(void)
|
15
16
|
{
|
17
|
+
TEST_IGNORE();
|
16
18
|
TEST_ASSERT_EQUAL(-1, compute("A", NULL));
|
17
19
|
}
|
18
20
|
|
19
21
|
void test_no_difference_between_identical_strands(void)
|
20
22
|
{
|
23
|
+
TEST_IGNORE();
|
21
24
|
TEST_ASSERT_EQUAL(0, compute("A", "A"));
|
22
25
|
}
|
23
26
|
|
24
27
|
void test_identical_long_strands(void)
|
25
28
|
{
|
29
|
+
TEST_IGNORE();
|
26
30
|
TEST_ASSERT_EQUAL(0, compute("GGACTGA", "GGACTGA"));
|
27
31
|
}
|
28
32
|
|
29
33
|
void test_hamming_distance_for_single_nucleotide_strand(void)
|
30
34
|
{
|
35
|
+
TEST_IGNORE();
|
31
36
|
TEST_ASSERT_EQUAL(1, compute("A", "G"));
|
32
37
|
}
|
33
38
|
|
34
39
|
void test_complete_hamming_distance_for_small_strand(void)
|
35
40
|
{
|
41
|
+
TEST_IGNORE();
|
36
42
|
TEST_ASSERT_EQUAL(2, compute("AG", "CT"));
|
37
43
|
}
|
38
44
|
|
39
45
|
void test_small_hamming_distance(void)
|
40
46
|
{
|
47
|
+
TEST_IGNORE();
|
41
48
|
TEST_ASSERT_EQUAL(1, compute("AT", "CT"));
|
42
49
|
}
|
43
50
|
|
44
51
|
void test_small_hamming_distance_in_longer_strand(void)
|
45
52
|
{
|
53
|
+
TEST_IGNORE();
|
46
54
|
TEST_ASSERT_EQUAL(1, compute("GGACG", "GGTCG"));
|
47
55
|
}
|
48
56
|
|
49
57
|
void test_rejects_extra_length_on_first_strand_when_longer(void)
|
50
58
|
{
|
59
|
+
TEST_IGNORE();
|
51
60
|
TEST_ASSERT_EQUAL(-1, compute("AAAG", "AAA"));
|
52
61
|
}
|
53
62
|
|
54
63
|
void test_rejects_extra_length_on_other_strand_when_longer(void)
|
55
64
|
{
|
65
|
+
TEST_IGNORE();
|
56
66
|
TEST_ASSERT_EQUAL(-1, compute("AAA", "AAAG"));
|
57
67
|
}
|
58
68
|
|
59
69
|
void test_large_hamming_distance(void)
|
60
70
|
{
|
71
|
+
TEST_IGNORE();
|
61
72
|
TEST_ASSERT_EQUAL(4, compute("GATACA", "GCATAA"));
|
62
73
|
}
|
63
74
|
|
64
75
|
void test_hamming_distance_in_very_long_strand(void)
|
65
76
|
{
|
77
|
+
TEST_IGNORE();
|
66
78
|
TEST_ASSERT_EQUAL(9, compute("GGACGGATTCTG", "AGGACGGATTCT"));
|
67
79
|
}
|
68
80
|
|
@@ -3,22 +3,22 @@
|
|
3
3
|
#include <stddef.h>
|
4
4
|
#include <stdint.h>
|
5
5
|
|
6
|
-
bool
|
6
|
+
bool is_isogram(const char phrase[])
|
7
7
|
{
|
8
|
-
uint32_t
|
8
|
+
uint32_t used_letters = 0;
|
9
9
|
|
10
10
|
if (phrase == NULL)
|
11
11
|
return false;
|
12
12
|
|
13
13
|
for (int16_t i = 0; phrase[i] != '\0'; ++i) {
|
14
14
|
if (isalpha(phrase[i])) {
|
15
|
-
uint8_t
|
16
|
-
uint32_t
|
15
|
+
uint8_t bit_number = toupper(phrase[i]) - 'A';
|
16
|
+
uint32_t bit_mask = 1 << bit_number;
|
17
17
|
|
18
|
-
if ((
|
18
|
+
if ((used_letters & bit_mask) > 0)
|
19
19
|
return false;
|
20
20
|
else
|
21
|
-
|
21
|
+
used_letters |= bit_mask;
|
22
22
|
}
|
23
23
|
}
|
24
24
|
|
@@ -4,47 +4,55 @@
|
|
4
4
|
|
5
5
|
void test_empty_string(void)
|
6
6
|
{
|
7
|
-
TEST_ASSERT_TRUE(
|
7
|
+
TEST_ASSERT_TRUE(is_isogram(""));
|
8
8
|
}
|
9
9
|
|
10
10
|
void test_lower_case_only(void)
|
11
11
|
{
|
12
|
-
|
12
|
+
TEST_IGNORE(); // delete this line to run test
|
13
|
+
TEST_ASSERT_TRUE(is_isogram("isogram"));
|
13
14
|
}
|
14
15
|
|
15
16
|
void test_duplicated_letter(void)
|
16
17
|
{
|
17
|
-
|
18
|
+
TEST_IGNORE();
|
19
|
+
TEST_ASSERT_FALSE(is_isogram("eleven"));
|
18
20
|
}
|
19
21
|
|
20
22
|
void test_longest_known_isogram(void)
|
21
23
|
{
|
22
|
-
|
24
|
+
TEST_IGNORE();
|
25
|
+
TEST_ASSERT_TRUE(is_isogram("subdermatoglyphic"));
|
23
26
|
}
|
24
27
|
|
25
28
|
void test_duplicated_letter_mixed_case(void)
|
26
29
|
{
|
27
|
-
|
30
|
+
TEST_IGNORE();
|
31
|
+
TEST_ASSERT_FALSE(is_isogram("Alphabet"));
|
28
32
|
}
|
29
33
|
|
30
34
|
void test_non_letter_char(void)
|
31
35
|
{
|
32
|
-
|
36
|
+
TEST_IGNORE();
|
37
|
+
TEST_ASSERT_TRUE(is_isogram("thumbscrew-japingly"));
|
33
38
|
}
|
34
39
|
|
35
40
|
void test_duplicated_non_letter_char(void)
|
36
41
|
{
|
37
|
-
|
42
|
+
TEST_IGNORE();
|
43
|
+
TEST_ASSERT_TRUE(is_isogram("Hjelmqvist-Gryb-Zock-Pfund-Wax"));
|
38
44
|
}
|
39
45
|
|
40
46
|
void test_multiple_whitespace(void)
|
41
47
|
{
|
42
|
-
|
48
|
+
TEST_IGNORE();
|
49
|
+
TEST_ASSERT_TRUE(is_isogram("Emily Jung Schwartzkopf"));
|
43
50
|
}
|
44
51
|
|
45
52
|
void test_duplicated_letter_within_word(void)
|
46
53
|
{
|
47
|
-
|
54
|
+
TEST_IGNORE();
|
55
|
+
TEST_ASSERT_FALSE(is_isogram("accentor"));
|
48
56
|
}
|
49
57
|
|
50
58
|
int main(void)
|
@@ -8,31 +8,37 @@ void test_can_find_the_largest_product_of_2_with_numbers_in_order(void)
|
|
8
8
|
|
9
9
|
void test_can_find_the_largest_product_of_2(void)
|
10
10
|
{
|
11
|
+
TEST_IGNORE(); // delete this line to run test
|
11
12
|
TEST_ASSERT_EQUAL(48, largest_series_product("576802143", 2));
|
12
13
|
}
|
13
14
|
|
14
15
|
void test_finds_the_largest_product_if_span_equals_length(void)
|
15
16
|
{
|
17
|
+
TEST_IGNORE();
|
16
18
|
TEST_ASSERT_EQUAL(18, largest_series_product("29", 2));
|
17
19
|
}
|
18
20
|
|
19
21
|
void test_can_find_the_largest_product_of_3_with_numbers_in_order(void)
|
20
22
|
{
|
23
|
+
TEST_IGNORE();
|
21
24
|
TEST_ASSERT_EQUAL(504, largest_series_product("0123456789", 3));
|
22
25
|
}
|
23
26
|
|
24
27
|
void test_can_find_the_largest_product_of_3(void)
|
25
28
|
{
|
29
|
+
TEST_IGNORE();
|
26
30
|
TEST_ASSERT_EQUAL(270, largest_series_product("1027839564", 3));
|
27
31
|
}
|
28
32
|
|
29
33
|
void test_can_find_the_largest_product_of_5_with_numbers_in_order(void)
|
30
34
|
{
|
35
|
+
TEST_IGNORE();
|
31
36
|
TEST_ASSERT_EQUAL(15120, largest_series_product("0123456789", 5));
|
32
37
|
}
|
33
38
|
|
34
39
|
void test_can_get_the_largest_product_of_a_big_number(void)
|
35
40
|
{
|
41
|
+
TEST_IGNORE();
|
36
42
|
TEST_ASSERT_EQUAL(23520,
|
37
43
|
largest_series_product
|
38
44
|
("73167176531330624919225119674426574742355349194934", 6));
|
@@ -40,6 +46,7 @@ void test_can_get_the_largest_product_of_a_big_number(void)
|
|
40
46
|
|
41
47
|
void test_can_get_the_largest_product_of_a_big_number_ii(void)
|
42
48
|
{
|
49
|
+
TEST_IGNORE();
|
43
50
|
TEST_ASSERT_EQUAL(28350,
|
44
51
|
largest_series_product
|
45
52
|
("52677741234314237566414902593461595376319419139427", 6));
|
@@ -47,6 +54,7 @@ void test_can_get_the_largest_product_of_a_big_number_ii(void)
|
|
47
54
|
|
48
55
|
void test_can_get_the_largest_product_of_a_big_number_project_euler(void)
|
49
56
|
{
|
57
|
+
TEST_IGNORE();
|
50
58
|
TEST_ASSERT_EQUAL_INT64(23514624000,
|
51
59
|
largest_series_product
|
52
60
|
("7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450",
|
@@ -55,36 +63,43 @@ void test_can_get_the_largest_product_of_a_big_number_project_euler(void)
|
|
55
63
|
|
56
64
|
void test_reports_zero_if_the_only_digits_are_zero(void)
|
57
65
|
{
|
66
|
+
TEST_IGNORE();
|
58
67
|
TEST_ASSERT_EQUAL(0, largest_series_product("0000", 2));
|
59
68
|
}
|
60
69
|
|
61
70
|
void test_reports_zero_if_all_spans_include_zero(void)
|
62
71
|
{
|
72
|
+
TEST_IGNORE();
|
63
73
|
TEST_ASSERT_EQUAL(0, largest_series_product("99099", 3));
|
64
74
|
}
|
65
75
|
|
66
76
|
void test_rejects_span_longer_than_string_length(void)
|
67
77
|
{
|
78
|
+
TEST_IGNORE();
|
68
79
|
TEST_ASSERT_EQUAL(-1, largest_series_product("123", 4));
|
69
80
|
}
|
70
81
|
|
71
82
|
void test_reports_1_for_empty_string_and_empty_product_(void)
|
72
83
|
{
|
84
|
+
TEST_IGNORE();
|
73
85
|
TEST_ASSERT_EQUAL(1, largest_series_product("", 0));
|
74
86
|
}
|
75
87
|
|
76
88
|
void test_reports_1_for_nonempty_string_and_empty_product_(void)
|
77
89
|
{
|
90
|
+
TEST_IGNORE();
|
78
91
|
TEST_ASSERT_EQUAL(1, largest_series_product("123", 0));
|
79
92
|
}
|
80
93
|
|
81
94
|
void test_rejects_empty_string_and_nonzero_span(void)
|
82
95
|
{
|
96
|
+
TEST_IGNORE();
|
83
97
|
TEST_ASSERT_EQUAL(-1, largest_series_product("", 1));
|
84
98
|
}
|
85
99
|
|
86
100
|
void test_rejects_invalid_character_in_digits(void)
|
87
101
|
{
|
102
|
+
TEST_IGNORE();
|
88
103
|
TEST_ASSERT_EQUAL(-1, largest_series_product("123a5", 2));
|
89
104
|
}
|
90
105
|
|
@@ -8,21 +8,25 @@ void test_a_known_leap_year(void)
|
|
8
8
|
|
9
9
|
void test_any_old_year(void)
|
10
10
|
{
|
11
|
+
TEST_IGNORE(); // delete this line to run test
|
11
12
|
TEST_ASSERT_FALSE(is_leap_year(1997));
|
12
13
|
}
|
13
14
|
|
14
15
|
void test_turn_of_the_20th_century(void)
|
15
16
|
{
|
17
|
+
TEST_IGNORE();
|
16
18
|
TEST_ASSERT_FALSE(is_leap_year(1900));
|
17
19
|
}
|
18
20
|
|
19
21
|
void test_turn_of_the_21st_century(void)
|
20
22
|
{
|
23
|
+
TEST_IGNORE();
|
21
24
|
TEST_ASSERT_TRUE(is_leap_year(2000));
|
22
25
|
}
|
23
26
|
|
24
27
|
void test_turn_of_the_25th_century(void)
|
25
28
|
{
|
29
|
+
TEST_IGNORE();
|
26
30
|
TEST_ASSERT_TRUE(is_leap_year(2400));
|
27
31
|
}
|
28
32
|
|
@@ -8,21 +8,25 @@ void test_first_prime(void)
|
|
8
8
|
|
9
9
|
void test_second_prime(void)
|
10
10
|
{
|
11
|
+
TEST_IGNORE(); // delete this line to run test
|
11
12
|
TEST_ASSERT_EQUAL_UINT32(3, nth(2));
|
12
13
|
}
|
13
14
|
|
14
15
|
void test_sixth_prime(void)
|
15
16
|
{
|
17
|
+
TEST_IGNORE();
|
16
18
|
TEST_ASSERT_EQUAL_UINT32(13, nth(6));
|
17
19
|
}
|
18
20
|
|
19
21
|
void test_large_prime(void)
|
20
22
|
{
|
23
|
+
TEST_IGNORE();
|
21
24
|
TEST_ASSERT_EQUAL_UINT32(104743, nth(10001));
|
22
25
|
}
|
23
26
|
|
24
27
|
void test_weird_case(void)
|
25
28
|
{
|
29
|
+
TEST_IGNORE();
|
26
30
|
TEST_ASSERT_EQUAL_UINT32(0, nth(0));
|
27
31
|
}
|
28
32
|
|