moved kdeaccessibility kdeaddons kdeadmin kdeartwork kdebindings kdeedu kdegames...
[kdeedu.git] / kbruch / testcases / primenumber_test.cpp
blobc0e322fba78d6edede82d6332ff6df476f3b4a4f
1 /***************************************************************************
3 begin : 2004-05-25
4 copyright : (C) 2004 by Sebastian Stein
5 email : seb.kde@hpfsc.de
7 ***************************************************************************/
9 /***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
18 // for BOOST testing
19 #include <boost/test/unit_test.hpp>
20 using boost::unit_test_framework::test_suite;
21 using boost::unit_test_framework::test_case;
23 // the class to be tested
24 #include "primenumber.h"
27 class primenumber_test
29 public:
31 // constructor
32 primenumber_test()
36 /** test the prime number algorithm */
37 void test_isPrimeNumber()
39 BOOST_REQUIRE(m_primenumber.isPrimeNumber(0) == 0);
40 BOOST_REQUIRE(m_primenumber.isPrimeNumber(2) == 1);
41 BOOST_REQUIRE(m_primenumber.isPrimeNumber(3) == 1);
42 BOOST_REQUIRE(m_primenumber.isPrimeNumber(4) == 0);
43 BOOST_REQUIRE(m_primenumber.isPrimeNumber(5) == 1);
44 BOOST_REQUIRE(m_primenumber.isPrimeNumber(6) == 0);
45 BOOST_REQUIRE(m_primenumber.isPrimeNumber(7) == 1);
46 BOOST_REQUIRE(m_primenumber.isPrimeNumber(8) == 0);
47 BOOST_REQUIRE(m_primenumber.isPrimeNumber(9) == 0);
48 BOOST_REQUIRE(m_primenumber.isPrimeNumber(23) == 1);
49 BOOST_REQUIRE(m_primenumber.isPrimeNumber(9) == 0);
50 BOOST_REQUIRE(m_primenumber.isPrimeNumber(9) == 0);
51 BOOST_REQUIRE(m_primenumber.isPrimeNumber(6) == 0);
52 BOOST_REQUIRE(m_primenumber.isPrimeNumber(101) == 1);
53 BOOST_REQUIRE(m_primenumber.isPrimeNumber(323) == 0); // 17 * 19
54 BOOST_REQUIRE(m_primenumber.isPrimeNumber(1001) == 0); // 7 * 143
55 BOOST_REQUIRE(m_primenumber.isPrimeNumber(1002) == 0); // 2 * 501
56 BOOST_REQUIRE(m_primenumber.isPrimeNumber(3) == 1);
57 BOOST_REQUIRE(m_primenumber.isPrimeNumber(2) == 1);
60 /** test the get_first() function */
61 void test_get_first()
63 BOOST_REQUIRE(m_primenumber.get_first() == 2);
66 /** test the move and get functions */
67 void test_move_get_func()
69 m_primenumber.move_first();
70 BOOST_REQUIRE(m_primenumber.get_current() == 2);
71 BOOST_REQUIRE(m_primenumber.get_next() == 3);
73 m_primenumber.move_forward();
74 BOOST_REQUIRE(m_primenumber.get_current() == 5);
76 m_primenumber.move_back();
77 BOOST_REQUIRE(m_primenumber.get_current() == 3);
79 unsigned int tmp = m_primenumber.get_last();
80 m_primenumber.move_last();
81 BOOST_REQUIRE(m_primenumber.get_current() == tmp);
83 m_primenumber.move_forward();
84 BOOST_REQUIRE(m_primenumber.get_last() != tmp);
87 private:
89 // instance of primenumber
90 primenumber m_primenumber;
93 class primenumber_test_suite : public test_suite
95 public:
97 primenumber_test_suite() : test_suite("primenumber_test_suite")
99 // create an instance of the test cases class
100 boost::shared_ptr<primenumber_test> instance(new primenumber_test());
102 // create the test cases
103 test_case* isPrimeNumber_test_case = BOOST_CLASS_TEST_CASE(
104 &primenumber_test::test_isPrimeNumber, instance );
105 test_case* get_first_test_case = BOOST_CLASS_TEST_CASE(
106 &primenumber_test::test_get_first, instance );
107 test_case* move_get_func_test_case = BOOST_CLASS_TEST_CASE(
108 &primenumber_test::test_move_get_func, instance );
110 // add the test cases to the test suite
111 add(isPrimeNumber_test_case);
112 add(get_first_test_case);
113 add(move_get_func_test_case);