From 32afeb118059a4e50697354750fdaf81b9b9295b Mon Sep 17 00:00:00 2001 From: Rakshit Gumber <87930796+RakshitGumber@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:31:19 +0530 Subject: [PATCH 1/5] UPDATE test cases from problem specifications - Updated all the test cases including new ones added - Regenerated test.toml with configlet - Configlet test says all filepaths, metadata, and tests for prime-factors are up to date --- .../practice/prime-factors/.meta/tests.toml | 28 ++++++- .../prime-factors/prime_factors_test.cpp | 77 ++++++++++++------- 2 files changed, 73 insertions(+), 32 deletions(-) diff --git a/exercises/practice/prime-factors/.meta/tests.toml b/exercises/practice/prime-factors/.meta/tests.toml index f3f05a3e..6f9cc8ce 100644 --- a/exercises/practice/prime-factors/.meta/tests.toml +++ b/exercises/practice/prime-factors/.meta/tests.toml @@ -1,6 +1,13 @@ -# This is an auto-generated file. Regular comments will be removed when this -# file is regenerated. Regenerating will not touch any manually added keys, -# so comments can be added in a "comment" key. +# This is an auto-generated file. +# +# Regenerating this file via `configlet sync` will: +# - Recreate every `description` key/value pair +# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications +# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion) +# - Preserve any other key/value pair +# +# As user-added comments (using the # character) will be removed when this file +# is regenerated, comments can be added via a `comment` key. [924fc966-a8f5-4288-82f2-6b9224819ccd] description = "no factors" @@ -8,12 +15,27 @@ description = "no factors" [17e30670-b105-4305-af53-ddde182cb6ad] description = "prime number" +[238d57c8-4c12-42ef-af34-ae4929f94789] +description = "another prime number" + [f59b8350-a180-495a-8fb1-1712fbee1158] description = "square of a prime" +[756949d3-3158-4e3d-91f2-c4f9f043ee70] +description = "product of first prime" + [bc8c113f-9580-4516-8669-c5fc29512ceb] description = "cube of a prime" +[7d6a3300-a4cb-4065-bd33-0ced1de6cb44] +description = "product of second prime" + +[073ac0b2-c915-4362-929d-fc45f7b9a9e4] +description = "product of third prime" + +[6e0e4912-7fb6-47f3-a9ad-dbcd79340c75] +description = "product of first and second prime" + [00485cd3-a3fe-4fbe-a64a-a4308fc1f870] description = "product of primes and non-primes" diff --git a/exercises/practice/prime-factors/prime_factors_test.cpp b/exercises/practice/prime-factors/prime_factors_test.cpp index fa1e29d4..9fe76e7b 100644 --- a/exercises/practice/prime-factors/prime_factors_test.cpp +++ b/exercises/practice/prime-factors/prime_factors_test.cpp @@ -5,94 +5,113 @@ #include "test/catch.hpp" #endif -TEST_CASE("_1_yields_empty") +TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") { const std::vector expected{}; - const std::vector actual{prime_factors::of(1)}; + const std::vector actual{ prime_factors::of(1) }; REQUIRE(expected == actual); } #if defined(EXERCISM_RUN_ALL_TESTS) -TEST_CASE("_2_yields_2") +TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") { - const std::vector expected{2}; + const std::vector expected{ 2 }; - const std::vector actual{prime_factors::of(2)}; + const std::vector actual{ prime_factors::of(2) }; REQUIRE(expected == actual); } -TEST_CASE("_3_yields_3") +TEST_CASE("another prime number", "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") { - const std::vector expected{3}; + const std::vector expected{ 3 }; - const std::vector actual{prime_factors::of(3)}; + const std::vector actual{ prime_factors::of(3) }; REQUIRE(expected == actual); } -TEST_CASE("_4_yields_2_2") +TEST_CASE("square of a prime", "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") { - const std::vector expected{2, 2}; + const std::vector expected{ 3, 3 }; - const std::vector actual{prime_factors::of(4)}; + const std::vector actual{ prime_factors::of(9) }; REQUIRE(expected == actual); } -TEST_CASE("_6_yields_2_3") +TEST_CASE("product of first prime", "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") { - const std::vector expected{2, 3}; + const std::vector expected{ 2, 2 }; - const std::vector actual{prime_factors::of(6)}; + const std::vector actual{ prime_factors::of(4) }; REQUIRE(expected == actual); } -TEST_CASE("_8_yields_2_2_2") +TEST_CASE("cube of a prime", "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") { - const std::vector expected{2, 2, 2}; + const std::vector expected{ 2, 2, 2 }; - const std::vector actual{prime_factors::of(8)}; + const std::vector actual{ prime_factors::of(8) }; REQUIRE(expected == actual); } -TEST_CASE("_9_yields_3_3") +TEST_CASE("product of second prime", "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") { - const std::vector expected{3, 3}; + const std::vector expected{ 3, 3, 3 }; - const std::vector actual{prime_factors::of(9)}; + const std::vector actual{ prime_factors::of(27) }; REQUIRE(expected == actual); } -TEST_CASE("_27_yields_3_3_3") +TEST_CASE("product of third prime", "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") { - const std::vector expected{3, 3, 3}; + const std::vector expected{ 5, 5, 5, 5 }; - const std::vector actual{prime_factors::of(27)}; + const std::vector actual{ prime_factors::of(625) }; REQUIRE(expected == actual); } -TEST_CASE("_625_yields_5_5_5_5") +TEST_CASE("product of first and second prime", "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") { - const std::vector expected{5, 5, 5, 5}; + const std::vector expected{ 2, 3 }; - const std::vector actual{prime_factors::of(625)}; + const std::vector actual{ prime_factors::of(6) }; REQUIRE(expected == actual); } -TEST_CASE("_901255_yields_5_17_23_461") +TEST_CASE("product of primes and non-primes", "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") { - const std::vector expected{5, 17, 23, 461}; + const std::vector expected{ 2, 2, 3 }; - const std::vector actual{prime_factors::of(901255)}; + const std::vector actual{ prime_factors::of(12) }; + + REQUIRE(expected == actual) +} + +TEST_CASE("product of primes", "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") +{ + const std::vector expected{ 5, 17, 23, 461 }; + + const std::vector actual{ prime_factors::of(901255) }; REQUIRE(expected == actual); } + +TEST_CASE("factors include a large prime", "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") +{ + const std::vector expected{ 11, 9539, 894119 }; + + const std::vector actual{ prime_factors::of(93819012551) }; + + REQUIRE(expected == actual) +} + #endif From 5224ab51b47e4be5165f023bd43868082029995e Mon Sep 17 00:00:00 2001 From: Rakshit Gumber <87930796+RakshitGumber@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:32:47 +0530 Subject: [PATCH 2/5] Fixed Formatting issues --- .../prime-factors/prime_factors_test.cpp | 96 +++++++++---------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/exercises/practice/prime-factors/prime_factors_test.cpp b/exercises/practice/prime-factors/prime_factors_test.cpp index 9fe76e7b..3db7433b 100644 --- a/exercises/practice/prime-factors/prime_factors_test.cpp +++ b/exercises/practice/prime-factors/prime_factors_test.cpp @@ -5,113 +5,111 @@ #include "test/catch.hpp" #endif -TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") -{ +TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") { const std::vector expected{}; - const std::vector actual{ prime_factors::of(1) }; + const std::vector actual{prime_factors::of(1)}; REQUIRE(expected == actual); } #if defined(EXERCISM_RUN_ALL_TESTS) -TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") -{ - const std::vector expected{ 2 }; +TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") { + const std::vector expected{2}; - const std::vector actual{ prime_factors::of(2) }; + const std::vector actual{prime_factors::of(2)}; REQUIRE(expected == actual); } -TEST_CASE("another prime number", "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") -{ - const std::vector expected{ 3 }; +TEST_CASE("another prime number", + "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") { + const std::vector expected{3}; - const std::vector actual{ prime_factors::of(3) }; + const std::vector actual{prime_factors::of(3)}; REQUIRE(expected == actual); } -TEST_CASE("square of a prime", "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") -{ - const std::vector expected{ 3, 3 }; +TEST_CASE("square of a prime", + "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") { + const std::vector expected{3, 3}; - const std::vector actual{ prime_factors::of(9) }; + const std::vector actual{prime_factors::of(9)}; REQUIRE(expected == actual); } -TEST_CASE("product of first prime", "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") -{ - const std::vector expected{ 2, 2 }; +TEST_CASE("product of first prime", + "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") { + const std::vector expected{2, 2}; - const std::vector actual{ prime_factors::of(4) }; + const std::vector actual{prime_factors::of(4)}; REQUIRE(expected == actual); } -TEST_CASE("cube of a prime", "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") -{ - const std::vector expected{ 2, 2, 2 }; +TEST_CASE("cube of a prime", + "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") { + const std::vector expected{2, 2, 2}; - const std::vector actual{ prime_factors::of(8) }; + const std::vector actual{prime_factors::of(8)}; REQUIRE(expected == actual); } -TEST_CASE("product of second prime", "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") -{ - const std::vector expected{ 3, 3, 3 }; +TEST_CASE("product of second prime", + "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") { + const std::vector expected{3, 3, 3}; - const std::vector actual{ prime_factors::of(27) }; + const std::vector actual{prime_factors::of(27)}; REQUIRE(expected == actual); } -TEST_CASE("product of third prime", "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") -{ - const std::vector expected{ 5, 5, 5, 5 }; +TEST_CASE("product of third prime", + "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") { + const std::vector expected{5, 5, 5, 5}; - const std::vector actual{ prime_factors::of(625) }; + const std::vector actual{prime_factors::of(625)}; REQUIRE(expected == actual); } -TEST_CASE("product of first and second prime", "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") -{ - const std::vector expected{ 2, 3 }; +TEST_CASE("product of first and second prime", + "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") { + const std::vector expected{2, 3}; - const std::vector actual{ prime_factors::of(6) }; + const std::vector actual{prime_factors::of(6)}; REQUIRE(expected == actual); } -TEST_CASE("product of primes and non-primes", "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") -{ - const std::vector expected{ 2, 2, 3 }; +TEST_CASE("product of primes and non-primes", + "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") { + const std::vector expected{2, 2, 3}; - const std::vector actual{ prime_factors::of(12) }; + const std::vector actual{prime_factors::of(12)}; - REQUIRE(expected == actual) + REQUIRE(expected == actual); } -TEST_CASE("product of primes", "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") -{ - const std::vector expected{ 5, 17, 23, 461 }; +TEST_CASE("product of primes", + "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") { + const std::vector expected{5, 17, 23, 461}; - const std::vector actual{ prime_factors::of(901255) }; + const std::vector actual{prime_factors::of(901255)}; REQUIRE(expected == actual); } -TEST_CASE("factors include a large prime", "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") -{ - const std::vector expected{ 11, 9539, 894119 }; +TEST_CASE("factors include a large prime", + "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") { + const std::vector expected{11, 9539, 894119}; - const std::vector actual{ prime_factors::of(93819012551) }; + const std::vector actual{prime_factors::of(93819012551)}; - REQUIRE(expected == actual) + REQUIRE(expected == actual); } #endif From 81fefaac40c943a9d8569276f0c0ef80d7c61386 Mon Sep 17 00:00:00 2001 From: Rakshit Gumber <87930796+RakshitGumber@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:36:00 +0530 Subject: [PATCH 3/5] Revert "Fixed Formatting issues" This reverts commit 5224ab51b47e4be5165f023bd43868082029995e. --- .../prime-factors/prime_factors_test.cpp | 96 ++++++++++--------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/exercises/practice/prime-factors/prime_factors_test.cpp b/exercises/practice/prime-factors/prime_factors_test.cpp index 3db7433b..9fe76e7b 100644 --- a/exercises/practice/prime-factors/prime_factors_test.cpp +++ b/exercises/practice/prime-factors/prime_factors_test.cpp @@ -5,111 +5,113 @@ #include "test/catch.hpp" #endif -TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") { +TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") +{ const std::vector expected{}; - const std::vector actual{prime_factors::of(1)}; + const std::vector actual{ prime_factors::of(1) }; REQUIRE(expected == actual); } #if defined(EXERCISM_RUN_ALL_TESTS) -TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") { - const std::vector expected{2}; +TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") +{ + const std::vector expected{ 2 }; - const std::vector actual{prime_factors::of(2)}; + const std::vector actual{ prime_factors::of(2) }; REQUIRE(expected == actual); } -TEST_CASE("another prime number", - "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") { - const std::vector expected{3}; +TEST_CASE("another prime number", "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") +{ + const std::vector expected{ 3 }; - const std::vector actual{prime_factors::of(3)}; + const std::vector actual{ prime_factors::of(3) }; REQUIRE(expected == actual); } -TEST_CASE("square of a prime", - "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") { - const std::vector expected{3, 3}; +TEST_CASE("square of a prime", "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") +{ + const std::vector expected{ 3, 3 }; - const std::vector actual{prime_factors::of(9)}; + const std::vector actual{ prime_factors::of(9) }; REQUIRE(expected == actual); } -TEST_CASE("product of first prime", - "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") { - const std::vector expected{2, 2}; +TEST_CASE("product of first prime", "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") +{ + const std::vector expected{ 2, 2 }; - const std::vector actual{prime_factors::of(4)}; + const std::vector actual{ prime_factors::of(4) }; REQUIRE(expected == actual); } -TEST_CASE("cube of a prime", - "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") { - const std::vector expected{2, 2, 2}; +TEST_CASE("cube of a prime", "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") +{ + const std::vector expected{ 2, 2, 2 }; - const std::vector actual{prime_factors::of(8)}; + const std::vector actual{ prime_factors::of(8) }; REQUIRE(expected == actual); } -TEST_CASE("product of second prime", - "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") { - const std::vector expected{3, 3, 3}; +TEST_CASE("product of second prime", "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") +{ + const std::vector expected{ 3, 3, 3 }; - const std::vector actual{prime_factors::of(27)}; + const std::vector actual{ prime_factors::of(27) }; REQUIRE(expected == actual); } -TEST_CASE("product of third prime", - "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") { - const std::vector expected{5, 5, 5, 5}; +TEST_CASE("product of third prime", "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") +{ + const std::vector expected{ 5, 5, 5, 5 }; - const std::vector actual{prime_factors::of(625)}; + const std::vector actual{ prime_factors::of(625) }; REQUIRE(expected == actual); } -TEST_CASE("product of first and second prime", - "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") { - const std::vector expected{2, 3}; +TEST_CASE("product of first and second prime", "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") +{ + const std::vector expected{ 2, 3 }; - const std::vector actual{prime_factors::of(6)}; + const std::vector actual{ prime_factors::of(6) }; REQUIRE(expected == actual); } -TEST_CASE("product of primes and non-primes", - "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") { - const std::vector expected{2, 2, 3}; +TEST_CASE("product of primes and non-primes", "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") +{ + const std::vector expected{ 2, 2, 3 }; - const std::vector actual{prime_factors::of(12)}; + const std::vector actual{ prime_factors::of(12) }; - REQUIRE(expected == actual); + REQUIRE(expected == actual) } -TEST_CASE("product of primes", - "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") { - const std::vector expected{5, 17, 23, 461}; +TEST_CASE("product of primes", "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") +{ + const std::vector expected{ 5, 17, 23, 461 }; - const std::vector actual{prime_factors::of(901255)}; + const std::vector actual{ prime_factors::of(901255) }; REQUIRE(expected == actual); } -TEST_CASE("factors include a large prime", - "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") { - const std::vector expected{11, 9539, 894119}; +TEST_CASE("factors include a large prime", "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") +{ + const std::vector expected{ 11, 9539, 894119 }; - const std::vector actual{prime_factors::of(93819012551)}; + const std::vector actual{ prime_factors::of(93819012551) }; - REQUIRE(expected == actual); + REQUIRE(expected == actual) } #endif From f819819abc11d8feb912244aa10d3a1f663bbd82 Mon Sep 17 00:00:00 2001 From: Rakshit Gumber <87930796+RakshitGumber@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:39:22 +0530 Subject: [PATCH 4/5] Fixed Formatting issues --- .../prime-factors/prime_factors_test.cpp | 96 +++++++++---------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/exercises/practice/prime-factors/prime_factors_test.cpp b/exercises/practice/prime-factors/prime_factors_test.cpp index 9fe76e7b..3db7433b 100644 --- a/exercises/practice/prime-factors/prime_factors_test.cpp +++ b/exercises/practice/prime-factors/prime_factors_test.cpp @@ -5,113 +5,111 @@ #include "test/catch.hpp" #endif -TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") -{ +TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") { const std::vector expected{}; - const std::vector actual{ prime_factors::of(1) }; + const std::vector actual{prime_factors::of(1)}; REQUIRE(expected == actual); } #if defined(EXERCISM_RUN_ALL_TESTS) -TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") -{ - const std::vector expected{ 2 }; +TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") { + const std::vector expected{2}; - const std::vector actual{ prime_factors::of(2) }; + const std::vector actual{prime_factors::of(2)}; REQUIRE(expected == actual); } -TEST_CASE("another prime number", "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") -{ - const std::vector expected{ 3 }; +TEST_CASE("another prime number", + "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") { + const std::vector expected{3}; - const std::vector actual{ prime_factors::of(3) }; + const std::vector actual{prime_factors::of(3)}; REQUIRE(expected == actual); } -TEST_CASE("square of a prime", "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") -{ - const std::vector expected{ 3, 3 }; +TEST_CASE("square of a prime", + "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") { + const std::vector expected{3, 3}; - const std::vector actual{ prime_factors::of(9) }; + const std::vector actual{prime_factors::of(9)}; REQUIRE(expected == actual); } -TEST_CASE("product of first prime", "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") -{ - const std::vector expected{ 2, 2 }; +TEST_CASE("product of first prime", + "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") { + const std::vector expected{2, 2}; - const std::vector actual{ prime_factors::of(4) }; + const std::vector actual{prime_factors::of(4)}; REQUIRE(expected == actual); } -TEST_CASE("cube of a prime", "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") -{ - const std::vector expected{ 2, 2, 2 }; +TEST_CASE("cube of a prime", + "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") { + const std::vector expected{2, 2, 2}; - const std::vector actual{ prime_factors::of(8) }; + const std::vector actual{prime_factors::of(8)}; REQUIRE(expected == actual); } -TEST_CASE("product of second prime", "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") -{ - const std::vector expected{ 3, 3, 3 }; +TEST_CASE("product of second prime", + "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") { + const std::vector expected{3, 3, 3}; - const std::vector actual{ prime_factors::of(27) }; + const std::vector actual{prime_factors::of(27)}; REQUIRE(expected == actual); } -TEST_CASE("product of third prime", "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") -{ - const std::vector expected{ 5, 5, 5, 5 }; +TEST_CASE("product of third prime", + "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") { + const std::vector expected{5, 5, 5, 5}; - const std::vector actual{ prime_factors::of(625) }; + const std::vector actual{prime_factors::of(625)}; REQUIRE(expected == actual); } -TEST_CASE("product of first and second prime", "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") -{ - const std::vector expected{ 2, 3 }; +TEST_CASE("product of first and second prime", + "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") { + const std::vector expected{2, 3}; - const std::vector actual{ prime_factors::of(6) }; + const std::vector actual{prime_factors::of(6)}; REQUIRE(expected == actual); } -TEST_CASE("product of primes and non-primes", "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") -{ - const std::vector expected{ 2, 2, 3 }; +TEST_CASE("product of primes and non-primes", + "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") { + const std::vector expected{2, 2, 3}; - const std::vector actual{ prime_factors::of(12) }; + const std::vector actual{prime_factors::of(12)}; - REQUIRE(expected == actual) + REQUIRE(expected == actual); } -TEST_CASE("product of primes", "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") -{ - const std::vector expected{ 5, 17, 23, 461 }; +TEST_CASE("product of primes", + "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") { + const std::vector expected{5, 17, 23, 461}; - const std::vector actual{ prime_factors::of(901255) }; + const std::vector actual{prime_factors::of(901255)}; REQUIRE(expected == actual); } -TEST_CASE("factors include a large prime", "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") -{ - const std::vector expected{ 11, 9539, 894119 }; +TEST_CASE("factors include a large prime", + "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") { + const std::vector expected{11, 9539, 894119}; - const std::vector actual{ prime_factors::of(93819012551) }; + const std::vector actual{prime_factors::of(93819012551)}; - REQUIRE(expected == actual) + REQUIRE(expected == actual); } #endif From 7e6337ba40e374ea496a5d91c1523211e81a7990 Mon Sep 17 00:00:00 2001 From: JagritGumber Date: Wed, 14 Aug 2024 14:04:20 +0530 Subject: [PATCH 5/5] Fixed test cases to include long long instead of int Updated examples to also use long long instead of int [no important files changed] --- .../practice/prime-factors/.meta/config.json | 3 +- .../practice/prime-factors/.meta/example.cpp | 17 ++++--- .../practice/prime-factors/.meta/example.h | 5 +- .../prime-factors/prime_factors_test.cpp | 48 +++++++++---------- 4 files changed, 36 insertions(+), 37 deletions(-) diff --git a/exercises/practice/prime-factors/.meta/config.json b/exercises/practice/prime-factors/.meta/config.json index c845f410..581048a0 100644 --- a/exercises/practice/prime-factors/.meta/config.json +++ b/exercises/practice/prime-factors/.meta/config.json @@ -8,7 +8,8 @@ "jackhughesweb", "KevinWMatthews", "kytrinyx", - "patricksjackson" + "patricksjackson", + "JagritGumber" ], "files": { "solution": [ diff --git a/exercises/practice/prime-factors/.meta/example.cpp b/exercises/practice/prime-factors/.meta/example.cpp index b9b83fc6..b41f2393 100644 --- a/exercises/practice/prime-factors/.meta/example.cpp +++ b/exercises/practice/prime-factors/.meta/example.cpp @@ -1,14 +1,13 @@ -#include "prime_factors.h" #include -namespace prime_factors -{ +#include "prime_factors.h" + +namespace prime_factors { -std::vector of(int n) -{ - std::vector factors; - const int end{static_cast(std::sqrt(n))}; - for (int candidate{2}; candidate <= end; ++candidate) { +std::vector of(long long n) { + std::vector factors; + const long long end{static_cast(std::sqrt(n))}; + for (long long candidate{2}; candidate <= end; ++candidate) { while (n % candidate == 0) { factors.push_back(candidate); n /= candidate; @@ -21,4 +20,4 @@ std::vector of(int n) return factors; } -} +} // namespace prime_factors diff --git a/exercises/practice/prime-factors/.meta/example.h b/exercises/practice/prime-factors/.meta/example.h index bc4940f9..f1971f1b 100644 --- a/exercises/practice/prime-factors/.meta/example.h +++ b/exercises/practice/prime-factors/.meta/example.h @@ -3,10 +3,9 @@ #include -namespace prime_factors -{ +namespace prime_factors { -std::vector of(int n); +std::vector of(long long n); } diff --git a/exercises/practice/prime-factors/prime_factors_test.cpp b/exercises/practice/prime-factors/prime_factors_test.cpp index 3db7433b..4c979cf9 100644 --- a/exercises/practice/prime-factors/prime_factors_test.cpp +++ b/exercises/practice/prime-factors/prime_factors_test.cpp @@ -6,108 +6,108 @@ #endif TEST_CASE("no factors", "[factors][924fc966-a8f5-4288-82f2-6b9224819ccd]") { - const std::vector expected{}; + const std::vector expected{}; - const std::vector actual{prime_factors::of(1)}; + const std::vector actual{prime_factors::of(1)}; REQUIRE(expected == actual); } #if defined(EXERCISM_RUN_ALL_TESTS) TEST_CASE("prime number", "[factors][17e30670-b105-4305-af53-ddde182cb6ad]") { - const std::vector expected{2}; + const std::vector expected{2}; - const std::vector actual{prime_factors::of(2)}; + const std::vector actual{prime_factors::of(2)}; REQUIRE(expected == actual); } TEST_CASE("another prime number", "[factors][238d57c8-4c12-42ef-af34-ae4929f94789]") { - const std::vector expected{3}; + const std::vector expected{3}; - const std::vector actual{prime_factors::of(3)}; + const std::vector actual{prime_factors::of(3)}; REQUIRE(expected == actual); } TEST_CASE("square of a prime", "[factors][f59b8350-a180-495a-8fb1-1712fbee1158]") { - const std::vector expected{3, 3}; + const std::vector expected{3, 3}; - const std::vector actual{prime_factors::of(9)}; + const std::vector actual{prime_factors::of(9)}; REQUIRE(expected == actual); } TEST_CASE("product of first prime", "[factors][756949d3-3158-4e3d-91f2-c4f9f043ee70]") { - const std::vector expected{2, 2}; + const std::vector expected{2, 2}; - const std::vector actual{prime_factors::of(4)}; + const std::vector actual{prime_factors::of(4)}; REQUIRE(expected == actual); } TEST_CASE("cube of a prime", "[factors][bc8c113f-9580-4516-8669-c5fc29512ceb]") { - const std::vector expected{2, 2, 2}; + const std::vector expected{2, 2, 2}; - const std::vector actual{prime_factors::of(8)}; + const std::vector actual{prime_factors::of(8)}; REQUIRE(expected == actual); } TEST_CASE("product of second prime", "[factors][7d6a3300-a4cb-4065-bd33-0ced1de6cb44]") { - const std::vector expected{3, 3, 3}; + const std::vector expected{3, 3, 3}; - const std::vector actual{prime_factors::of(27)}; + const std::vector actual{prime_factors::of(27)}; REQUIRE(expected == actual); } TEST_CASE("product of third prime", "[factors][073ac0b2-c915-4362-929d-fc45f7b9a9e4]") { - const std::vector expected{5, 5, 5, 5}; + const std::vector expected{5, 5, 5, 5}; - const std::vector actual{prime_factors::of(625)}; + const std::vector actual{prime_factors::of(625)}; REQUIRE(expected == actual); } TEST_CASE("product of first and second prime", "[factors][6e0e4912-7fb6-47f3-a9ad-dbcd79340c75]") { - const std::vector expected{2, 3}; + const std::vector expected{2, 3}; - const std::vector actual{prime_factors::of(6)}; + const std::vector actual{prime_factors::of(6)}; REQUIRE(expected == actual); } TEST_CASE("product of primes and non-primes", "[factors][00485cd3-a3fe-4fbe-a64a-a4308fc1f870]") { - const std::vector expected{2, 2, 3}; + const std::vector expected{2, 2, 3}; - const std::vector actual{prime_factors::of(12)}; + const std::vector actual{prime_factors::of(12)}; REQUIRE(expected == actual); } TEST_CASE("product of primes", "[factors][02251d54-3ca1-4a9b-85e1-b38f4b0ccb91]") { - const std::vector expected{5, 17, 23, 461}; + const std::vector expected{5, 17, 23, 461}; - const std::vector actual{prime_factors::of(901255)}; + const std::vector actual{prime_factors::of(901255)}; REQUIRE(expected == actual); } TEST_CASE("factors include a large prime", "[factors][070cf8dc-e202-4285-aa37-8d775c9cd473]") { - const std::vector expected{11, 9539, 894119}; + const std::vector expected{11, 9539, 894119}; - const std::vector actual{prime_factors::of(93819012551)}; + const std::vector actual{prime_factors::of(93819012551)}; REQUIRE(expected == actual); }