Skip to content

Commit 66dbcba

Browse files
adding unit tests for benchmark problems
1 parent 6cd62a4 commit 66dbcba

File tree

11 files changed

+111
-18
lines changed

11 files changed

+111
-18
lines changed

include/gpcxx/app.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#define GPCXX_APP_HPP_DEFINED
1414

1515

16-
#include <gpcxx/app/generate_evenly_space_test_data.hpp>
16+
#include <gpcxx/app/generate_evenly_spaced_test_data.hpp>
1717
#include <gpcxx/app/generate_normal_distributed_test_data.hpp>
1818
#include <gpcxx/app/generate_random_test_data.hpp>
1919
#include <gpcxx/app/generate_uniform_distributed_test_data.hpp>

include/gpcxx/app/benchmark_problems/keijzer.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#ifndef GPCXX_APP_BENCHMARK_PROBLEMS_KEIJZER_HPP_INCLUDED
1313
#define GPCXX_APP_BENCHMARK_PROBLEMS_KEIJZER_HPP_INCLUDED
1414

15-
#include <gpcxx/app/generate_evenly_space_test_data.hpp>
15+
#include <gpcxx/app/generate_evenly_spaced_test_data.hpp>
1616
#include <gpcxx/app/generate_uniform_distributed_test_data.hpp>
1717

1818
#include <boost/math/constants/constants.hpp>
@@ -78,7 +78,7 @@ auto generate_keijzer4( void ) {
7878
template< typename Rng >
7979
auto generate_keijzer5( Rng& rng ) {
8080
return gpcxx::generate_uniform_distributed_test_data< 3 >( rng , 1000 ,
81-
{{ std::make_pair( -1.0 , 1.0 ) , std::make_pair( 1.0 , 2.0 ) , std::make_pair( -1.0 , 1.0 ) }} ,
81+
std::array< std::pair< double , double > , 3 >{{ std::make_pair( -1.0 , 1.0 ) , std::make_pair( 1.0 , 2.0 ) , std::make_pair( -1.0 , 1.0 ) }} ,
8282
keijzer_func6 );
8383
}
8484

include/gpcxx/app/benchmark_problems/koza.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ inline double koza_func3( double x ) { return x * x * x * x * x * x - 2.0 * x *
2727

2828
template< typename Rng >
2929
auto generate_koza1( Rng& rng ) {
30-
return generate_uniform_distributed_test_data< 1 >( rng , 20 , {{ std::make_pair( -1.0 , 1.0 ) }} , koza_func1 ); }
30+
return generate_uniform_distributed_test_data< 1 >( rng , 20 , -1.0 , 1.0 , koza_func1 ); }
3131

3232
template< typename Rng >
3333
auto generate_koza2( Rng& rng ) {
34-
return generate_uniform_distributed_test_data< 1 >( rng , 20 , {{ std::make_pair( -1.0 , 1.0 ) }} , koza_func2 ); }
34+
return generate_uniform_distributed_test_data< 1 >( rng , 20 , -1.0 , 1.0 , koza_func2 ); }
3535

3636
template< typename Rng >
3737
auto generate_koza3( Rng& rng ) {
38-
return generate_uniform_distributed_test_data< 1 >( rng , 20 , {{ std::make_pair( -1.0 , 1.0 ) }} , koza_func3 ); }
38+
return generate_uniform_distributed_test_data< 1 >( rng , 20 , -1.0 , 1.0 , koza_func3 ); }
3939

4040

4141

include/gpcxx/app/benchmark_problems/pagie.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#ifndef GPCXX_APP_BENCHMARK_PROBLEMS_PAGIE_HPP_INCLUDED
1313
#define GPCXX_APP_BENCHMARK_PROBLEMS_PAGIE_HPP_INCLUDED
1414

15-
#include <gpcxx/app/generate_evenly_space_test_data.hpp>
15+
#include <gpcxx/app/generate_evenly_spaced_test_data.hpp>
1616

1717
namespace gpcxx {
1818

include/gpcxx/app/benchmark_problems/vladislavleva.hpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#define GPCXX_APP_BENCHMARK_PROBLEMS_VLADISLAVLEVA_HPP_INCLUDED
1414

1515
#include <gpcxx/app/generate_uniform_distributed_test_data.hpp>
16-
#include <gpcxx/app/generate_evenly_space_test_data.hpp>
16+
#include <gpcxx/app/generate_evenly_spaced_test_data.hpp>
1717

1818
#include <cmath>
1919

@@ -57,7 +57,9 @@ auto generate_vladislavleva2( void ) {
5757
return generate_evenly_spaced_test_data< 1 >( 0.05 , 10.0 , 0.1 , vladislavleva_func2 ); }
5858

5959
auto generate_vladislavleva3( void ) {
60-
return generate_evenly_spaced_test_data< 2 >( {{ std::make_tuple( 0.05 , 10.0 , 0.1 ) , std::make_tuple( 0.05 , 10.05 , 2.0 ) }} , vladislavleva_func3 ); }
60+
return generate_evenly_spaced_test_data< 2 >(
61+
std::array< std::tuple< double , double , double > , 2 >{{ std::make_tuple( 0.05 , 10.0 , 0.1 ) , std::make_tuple( 0.05 , 10.05 , 2.0 ) }}
62+
, vladislavleva_func3 ); }
6163

6264
template< typename Rng >
6365
auto generate_vladislavleva4( Rng& rng ) {
@@ -66,7 +68,8 @@ auto generate_vladislavleva4( Rng& rng ) {
6668
template< typename Rng >
6769
auto generate_vladislavleva5( Rng& rng ) {
6870
return generate_uniform_distributed_test_data< 3 >( rng , 300 ,
69-
{{ std::make_pair( 0.05 , 2.0 ) , std::make_pair( 1.0 , 2.0 ) , std::make_tuple( 0.05 , 2.0 ) }} , vladislavleva_func5 ); }
71+
std::array< std::pair< double , double > , 3 > {{ std::make_pair( 0.05 , 2.0 ) , std::make_pair( 1.0 , 2.0 ) , std::make_pair( 0.05 , 2.0 ) }}
72+
, vladislavleva_func5 ); }
7073

7174
template< typename Rng >
7275
auto generate_vladislavleva6( Rng& rng ) {

include/gpcxx/app/generate_evenly_space_test_data.hpp renamed to include/gpcxx/app/generate_evenly_spaced_test_data.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* gpcxx/app/generate_evenly_space_test_data.hpp
2+
* gpcxx/app/generate_evenly_spaced_test_data.hpp
33
* Date: 2015-06-14
44
* Author: Karsten Ahnert ([email protected])
55
* Copyright: Karsten Ahnert
@@ -9,8 +9,8 @@
99
* copy at http://www.boost.org/LICENSE_1_0.txt)
1010
*/
1111

12-
#ifndef GPCXX_APP_GENERATE_EVENLY_SPACE_TEST_DATA_HPP_INCLUDED
13-
#define GPCXX_APP_GENERATE_EVENLY_SPACE_TEST_DATA_HPP_INCLUDED
12+
#ifndef GPCXX_APP_GENERATE_EVENLY_SPACED_TEST_DATA_HPP_INCLUDED
13+
#define GPCXX_APP_GENERATE_EVENLY_SPACED_TEST_DATA_HPP_INCLUDED
1414

1515
#include <gpcxx/eval/regression_fitness.hpp>
1616
#include <gpcxx/util/array_unpack.hpp>
@@ -69,4 +69,4 @@ auto generate_evenly_spaced_test_data( Value min , Value max , Value stepsize ,
6969
} // namespace gpcxx
7070

7171

72-
#endif // GPCXX_APP_GENERATE_EVENLY_SPACE_TEST_DATA_HPP_INCLUDED
72+
#endif // GPCXX_APP_GENERATE_EVENLY_SPACED_TEST_DATA_HPP_INCLUDED

include/gpcxx/config_version.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
#define GPCXX_VERSION_MAJOR 0
1616
#define GPCXX_VERSION_MINOR 3
17-
#define GPCXX_VERSION_PATCH 27
18-
#define GPCXX_VERSION_SHA1 g85f9
17+
#define GPCXX_VERSION_PATCH 28
18+
#define GPCXX_VERSION_SHA1 g6cd6
1919

2020
#endif // GPCXX_CONFIG_VERSION_HPP_DEFINED

performance/pagie2/pagie2.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include <gpcxx/stat/population_statistics.hpp>
2525
#include <gpcxx/app/timer.hpp>
2626
#include <gpcxx/app/normalize.hpp>
27-
#include <gpcxx/app/generate_evenly_space_test_data.hpp>
27+
#include <gpcxx/app/generate_evenly_spaced_test_data.hpp>
2828

2929
#include <boost/fusion/include/make_vector.hpp>
3030

test/app/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ include_directories ( ${gtest_SOURCE_DIR} )
66

77

88
add_executable ( app_tests
9+
benchmark_problems.cpp
910
generate_evenly_spaced_test_data.cpp
1011
generate_random_test_data.cpp
1112
)

test/app/benchmark_problems.cpp

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/*
2+
* test/app/benchmark_problems.cpp
3+
* Date: 2015-06-24
4+
* Author: Karsten Ahnert ([email protected])
5+
* Copyright: Karsten Ahnert
6+
*
7+
* Distributed under the Boost Software License, Version 1.0.
8+
* (See accompanying file LICENSE_1_0.txt or
9+
* copy at http://www.boost.org/LICENSE_1_0.txt)
10+
*/
11+
12+
#include <gpcxx/app/benchmark_problems/keijzer.hpp>
13+
#include <gpcxx/app/benchmark_problems/koza.hpp>
14+
#include <gpcxx/app/benchmark_problems/korns.hpp>
15+
#include <gpcxx/app/benchmark_problems/pagie.hpp>
16+
#include <gpcxx/app/benchmark_problems/vladislavleva.hpp>
17+
#include <gpcxx/util/macros.hpp>
18+
19+
#include <gtest/gtest.h>
20+
#include <random>
21+
22+
#define TESTNAME benchmark_problems_tests
23+
24+
using namespace std;
25+
using namespace gpcxx;
26+
27+
#define CREATE_INSTANTIATION_TEST( func ) \
28+
TEST( TESTNAME , func ) \
29+
{ \
30+
auto f = func (); \
31+
GPCXX_UNUSED_VAR( f ); \
32+
}
33+
34+
#define CREATE_INSTANTIATION_TEST_RNG( func ) \
35+
TEST( TESTNAME , func ) \
36+
{ \
37+
std::mt19937 rng; \
38+
auto f = func ( rng ); \
39+
GPCXX_UNUSED_VAR( f ); \
40+
}
41+
42+
43+
CREATE_INSTANTIATION_TEST_RNG( generate_koza1 )
44+
CREATE_INSTANTIATION_TEST_RNG( generate_koza2 )
45+
CREATE_INSTANTIATION_TEST_RNG( generate_koza3 )
46+
47+
CREATE_INSTANTIATION_TEST( generate_pagie1 )
48+
CREATE_INSTANTIATION_TEST( generate_pagie2 )
49+
50+
CREATE_INSTANTIATION_TEST( generate_keijzer1 )
51+
CREATE_INSTANTIATION_TEST( generate_keijzer2 )
52+
CREATE_INSTANTIATION_TEST( generate_keijzer3 )
53+
CREATE_INSTANTIATION_TEST( generate_keijzer4 )
54+
CREATE_INSTANTIATION_TEST_RNG( generate_keijzer5 )
55+
CREATE_INSTANTIATION_TEST( generate_keijzer6 )
56+
CREATE_INSTANTIATION_TEST( generate_keijzer7 )
57+
CREATE_INSTANTIATION_TEST( generate_keijzer8 )
58+
CREATE_INSTANTIATION_TEST( generate_keijzer9 )
59+
CREATE_INSTANTIATION_TEST_RNG( generate_keijzer10 )
60+
CREATE_INSTANTIATION_TEST_RNG( generate_keijzer11 )
61+
CREATE_INSTANTIATION_TEST_RNG( generate_keijzer12 )
62+
CREATE_INSTANTIATION_TEST_RNG( generate_keijzer13 )
63+
CREATE_INSTANTIATION_TEST_RNG( generate_keijzer14 )
64+
CREATE_INSTANTIATION_TEST_RNG( generate_keijzer15 )
65+
66+
CREATE_INSTANTIATION_TEST_RNG( generate_korns1 )
67+
CREATE_INSTANTIATION_TEST_RNG( generate_korns2 )
68+
CREATE_INSTANTIATION_TEST_RNG( generate_korns3 )
69+
CREATE_INSTANTIATION_TEST_RNG( generate_korns4 )
70+
CREATE_INSTANTIATION_TEST_RNG( generate_korns5 )
71+
CREATE_INSTANTIATION_TEST_RNG( generate_korns6 )
72+
CREATE_INSTANTIATION_TEST_RNG( generate_korns7 )
73+
CREATE_INSTANTIATION_TEST_RNG( generate_korns8 )
74+
CREATE_INSTANTIATION_TEST_RNG( generate_korns9 )
75+
CREATE_INSTANTIATION_TEST_RNG( generate_korns10 )
76+
CREATE_INSTANTIATION_TEST_RNG( generate_korns11 )
77+
CREATE_INSTANTIATION_TEST_RNG( generate_korns12 )
78+
CREATE_INSTANTIATION_TEST_RNG( generate_korns13 )
79+
CREATE_INSTANTIATION_TEST_RNG( generate_korns14 )
80+
CREATE_INSTANTIATION_TEST_RNG( generate_korns15 )
81+
82+
CREATE_INSTANTIATION_TEST_RNG( generate_vladislavleva1 )
83+
CREATE_INSTANTIATION_TEST( generate_vladislavleva2 )
84+
CREATE_INSTANTIATION_TEST( generate_vladislavleva3 )
85+
CREATE_INSTANTIATION_TEST_RNG( generate_vladislavleva4 )
86+
CREATE_INSTANTIATION_TEST_RNG( generate_vladislavleva5 )
87+
CREATE_INSTANTIATION_TEST_RNG( generate_vladislavleva6 )
88+
CREATE_INSTANTIATION_TEST_RNG( generate_vladislavleva7 )
89+
CREATE_INSTANTIATION_TEST_RNG( generate_vladislavleva8 )

0 commit comments

Comments
 (0)