You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kbruch/testcases/primenumber_test.cpp

116 lines
3.8 KiB

/***************************************************************************
begin : 2004-05-25
copyright : (C) 2004 by Sebastian Stein
email : seb.kde@hpfsc.de
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
// for BOOST testing
#include <boost/test/unit_test.hpp>
using boost::unit_test_framework::test_suite;
using boost::unit_test_framework::test_case;
// the class to be tested
#include "primenumber.h"
class primenumber_test
{
public:
// constructor
primenumber_test()
{
}
/** test the prime number algorithm */
void test_isPrimeNumber()
{
BOOST_REQUIRE(m_primenumber.isPrimeNumber(0) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(2) == 1);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(3) == 1);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(4) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(5) == 1);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(6) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(7) == 1);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(8) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(9) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(23) == 1);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(9) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(9) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(6) == 0);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(101) == 1);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(323) == 0); // 17 * 19
BOOST_REQUIRE(m_primenumber.isPrimeNumber(1001) == 0); // 7 * 143
BOOST_REQUIRE(m_primenumber.isPrimeNumber(1002) == 0); // 2 * 501
BOOST_REQUIRE(m_primenumber.isPrimeNumber(3) == 1);
BOOST_REQUIRE(m_primenumber.isPrimeNumber(2) == 1);
}
/** test the get_first() function */
void test_get_first()
{
BOOST_REQUIRE(m_primenumber.get_first() == 2);
}
/** test the move and get functions */
void test_move_get_func()
{
m_primenumber.move_first();
BOOST_REQUIRE(m_primenumber.get_current() == 2);
BOOST_REQUIRE(m_primenumber.get_next() == 3);
m_primenumber.move_forward();
BOOST_REQUIRE(m_primenumber.get_current() == 5);
m_primenumber.move_back();
BOOST_REQUIRE(m_primenumber.get_current() == 3);
unsigned int tmp = m_primenumber.get_last();
m_primenumber.move_last();
BOOST_REQUIRE(m_primenumber.get_current() == tmp);
m_primenumber.move_forward();
BOOST_REQUIRE(m_primenumber.get_last() != tmp);
}
private:
// instance of primenumber
primenumber m_primenumber;
};
class primenumber_test_suite : public test_suite
{
public:
primenumber_test_suite() : test_suite("primenumber_test_suite")
{
// create an instance of the test cases class
boost::shared_ptr<primenumber_test> instance(new primenumber_test());
// create the test cases
test_case* isPrimeNumber_test_case = BOOST_CLASS_TEST_CASE(
&primenumber_test::test_isPrimeNumber, instance );
test_case* get_first_test_case = BOOST_CLASS_TEST_CASE(
&primenumber_test::test_get_first, instance );
test_case* move_get_func_test_case = BOOST_CLASS_TEST_CASE(
&primenumber_test::test_move_get_func, instance );
// add the test cases to the test suite
add(isPrimeNumber_test_case);
add(get_first_test_case);
add(move_get_func_test_case);
}
};