21 #define BOOST_TEST_MODULE libjmmcg_tests
22 #include <boost/test/included/unit_test.hpp>
24 #include "core/gcd.hpp"
26 using namespace libjmmcg;
28 BOOST_AUTO_TEST_SUITE(gcd_tests)
30 BOOST_AUTO_TEST_SUITE(use_euclid)
32 BOOST_AUTO_TEST_CASE(check_values) {
33 BOOST_CHECK_EQUAL(euclid::gcd(1, 1), 1);
34 BOOST_CHECK_EQUAL(euclid::gcd(2, 1), 1);
35 BOOST_CHECK_EQUAL(euclid::gcd(1, 2), 1);
36 BOOST_CHECK_EQUAL(euclid::gcd(3, 2), 1);
37 BOOST_CHECK_EQUAL(euclid::gcd(2, 3), 1);
38 BOOST_CHECK_EQUAL(euclid::gcd(2, 6), 2);
39 BOOST_CHECK_EQUAL(euclid::gcd(6, 2), 2);
40 BOOST_CHECK_EQUAL(euclid::gcd(15, 25), 5);
41 BOOST_CHECK_EQUAL(euclid::gcd(18, 24), 6);
44 BOOST_AUTO_TEST_SUITE_END()
46 BOOST_AUTO_TEST_SUITE(use_binary)
48 BOOST_AUTO_TEST_CASE(check_values) {
49 BOOST_CHECK_EQUAL(binary::gcd(1, 1), 1);
50 BOOST_CHECK_EQUAL(binary::gcd(2, 1), 1);
51 BOOST_CHECK_EQUAL(binary::gcd(1, 2), 1);
52 BOOST_CHECK_EQUAL(binary::gcd(3, 2), 1);
53 BOOST_CHECK_EQUAL(binary::gcd(2, 3), 1);
54 BOOST_CHECK_EQUAL(binary::gcd(2, 6), 2);
55 BOOST_CHECK_EQUAL(binary::gcd(6, 2), 2);
56 BOOST_WARN_EQUAL(binary::gcd(15, 25), 5);
57 BOOST_CHECK_EQUAL(binary::gcd(18, 24), 6);
60 BOOST_AUTO_TEST_SUITE_END()
62 BOOST_AUTO_TEST_SUITE_END()