root/examples/factoring.cpp

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. BOOST_AUTO_TEST_SUITE

   1 /******************************************************************************
   2 ** $Header: svn+ssh://jmmcg@svn.code.sf.net/p/libjmmcg/code/trunk/libjmmcg/examples/count_setbits.cpp 1926 2016-05-23 21:00:19Z jmmcg $
   3 **
   4 ** Copyright (c) 2016 by J.M.McGuiness, coder@hussar.me.uk
   5 **
   6 ** This library is free software; you can redistribute it and/or
   7 ** modify it under the terms of the GNU Lesser General Public
   8 ** License as published by the Free Software Foundation; either
   9 ** version 2.1 of the License, or (at your option) any later version.
  10 **
  11 ** This library is distributed in the hope that it will be useful,
  12 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14 ** Lesser General Public License for more details.
  15 **
  16 ** You should have received a copy of the GNU Lesser General Public
  17 ** License along with this library; if not, write to the Free Software
  18 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19 */
  20 
  21 #include "stdafx.h"
  22 
  23 #define BOOST_TEST_MODULE libjmmcg_tests
  24 #include <boost/test/included/unit_test.hpp>
  25 
  26 #include "core/factoring.hpp"
  27 
  28 namespace std {
  29 
  30 std::ostream &operator<<(std::ostream &os, jmmcg::factoring::collection_type const &c) noexcept(false) {
  31         std::copy(c.begin(), c.end(), std::ostream_iterator<jmmcg::factoring::collection_type::value_type>(os, ", "));
  32         return os;
  33 }
  34 
  35 }
  36 
  37 BOOST_AUTO_TEST_SUITE(factoring_tests)
  38 
  39 BOOST_AUTO_TEST_SUITE(division)
  40 
  41 BOOST_AUTO_TEST_CASE(check_values) {
  42         BOOST_CHECK_EQUAL(jmmcg::factoring::division(1), jmmcg::factoring::collection_type{});
  43         BOOST_CHECK_EQUAL(jmmcg::factoring::division(2), jmmcg::factoring::collection_type{2});
  44         BOOST_CHECK_EQUAL(jmmcg::factoring::division(3), jmmcg::factoring::collection_type{3});
  45         BOOST_CHECK_EQUAL(jmmcg::factoring::division(4), jmmcg::factoring::collection_type{2});
  46         BOOST_CHECK_EQUAL(jmmcg::factoring::division(5), jmmcg::factoring::collection_type{5});
  47         BOOST_CHECK_EQUAL(jmmcg::factoring::division(6), (jmmcg::factoring::collection_type{2, 3}));
  48         BOOST_CHECK_EQUAL(jmmcg::factoring::division(7), jmmcg::factoring::collection_type{7});
  49         BOOST_CHECK_EQUAL(jmmcg::factoring::division(8), jmmcg::factoring::collection_type{2});
  50         BOOST_CHECK_EQUAL(jmmcg::factoring::division(9), jmmcg::factoring::collection_type{3});
  51         BOOST_CHECK_EQUAL(jmmcg::factoring::division(10), (jmmcg::factoring::collection_type{2, 5}));
  52         BOOST_CHECK_EQUAL(jmmcg::factoring::division(24), (jmmcg::factoring::collection_type{2, 3}));
  53         BOOST_CHECK_EQUAL(jmmcg::factoring::division(30), (jmmcg::factoring::collection_type{2, 3, 5}));
  54 }
  55 
  56 BOOST_AUTO_TEST_SUITE_END()
  57 
  58 BOOST_AUTO_TEST_SUITE(monte_carlo)
  59 /* TODO
  60 BOOST_AUTO_TEST_CASE(check_values) {
  61         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(1), jmmcg::factoring::collection_type{});
  62         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(2), jmmcg::factoring::collection_type{2});
  63         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(3), jmmcg::factoring::collection_type{3});
  64         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(4), jmmcg::factoring::collection_type{2});
  65         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(5), jmmcg::factoring::collection_type{5});
  66         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(6), (jmmcg::factoring::collection_type{2, 3}));
  67         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(7), jmmcg::factoring::collection_type{7});
  68         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(8), jmmcg::factoring::collection_type{2});
  69         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(9), jmmcg::factoring::collection_type{3});
  70         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(10), (jmmcg::factoring::collection_type{2, 5}));
  71         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(24), (jmmcg::factoring::collection_type{2, 3}));
  72         BOOST_CHECK_EQUAL(jmmcg::factoring::monte_carlo(30), (jmmcg::factoring::collection_type{2, 3, 5}));
  73 }
  74 */
  75 BOOST_AUTO_TEST_SUITE_END()
  76 
  77 BOOST_AUTO_TEST_SUITE_END()

/* [<][>][^][v][top][bottom][index][help] */