Generated on for Gecode by doxygen 1.17.0
test.hpp
Go to the documentation of this file.
1/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2/*
3 * Main authors:
4 * Christian Schulte <schulte@gecode.dev>
5 *
6 * Copyright:
7 * Christian Schulte, 2007
8 *
9 * This file is part of Gecode, the generic constraint
10 * development environment:
11 * http://www.gecode.dev
12 *
13 * Permission is hereby granted, free of charge, to any person obtaining
14 * a copy of this software and associated documentation files (the
15 * "Software"), to deal in the Software without restriction, including
16 * without limitation the rights to use, copy, modify, merge, publish,
17 * distribute, sublicense, and/or sell copies of the Software, and to
18 * permit persons to whom the Software is furnished to do so, subject to
19 * the following conditions:
20 *
21 * The above copyright notice and this permission notice shall be
22 * included in all copies or substantial portions of the Software.
23 *
24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 *
32 */
33
34namespace Test {
35
36 /*
37 * Commandline options
38 *
39 */
40 inline
43 stop(true), log(false), testpat(), start_from(nullptr), list(false)
44 {}
45
46 /*
47 * Base class for tests
48 *
49 */
50 inline const std::string&
51 Base::name(void) const {
52 return _name;
53 }
54 inline Base*
56 return _tests;
57 }
58 inline Base*
59 Base::next(void) const {
60 return _next;
61 }
62 inline void
64 _next=n;
65 }
66 inline bool
68 return fixpoint(_rand);
69 }
70
71 inline bool
73 return rand(opt.fixprob) == 0;
74 }
75
76 inline std::string
77 Base::str(bool b) {
78 std::stringstream s;
79 if (b)
80 s << "+";
81 else
82 s << "-";
83 return s.str();
84 }
85
86 inline std::string
87 Base::str(int i) {
88 std::stringstream s;
89 s << i;
90 return s.str();
91 }
92
93 inline std::string
95 std::string s = "";
96 for (int i=0; i<x.size()-1; i++)
97 s += str(x[i]) + ",";
98 return "[" + s + str(x[x.size()-1]) + "]";
99 }
100
101
102}
103
104// STATISTICS: test-core
int size(void) const
Return size of array (number of elements).
Definition array.hpp:1597
Passing integer arguments.
Definition int.hh:652
Base class for all tests to be run
Definition test.hh:121
Gecode::Support::RandomGenerator _rand
Random number generator.
Definition test.hh:164
Base(std::string s)
Create and register test with name s.
static Base * tests(void)
Return all tests.
Definition test.hpp:55
bool fixpoint(void)
Throw a coin whether to compute a fixpoint.
Definition test.hpp:67
Base * next(void) const
Return next test.
Definition test.hpp:59
const std::string & name(void) const
Return name of test.
Definition test.hpp:51
static std::string str(bool b)
Map bool to string.
Definition test.hpp:77
std::vector< std::pair< MatchType, const char * > > testpat
Patterns to test against.
Definition test.hh:102
bool log
Whether to log the tests.
Definition test.hh:100
unsigned int seed
The random seed to be used.
Definition test.hh:88
const char * start_from
Name of first test to start with.
Definition test.hh:104
Options(void)
Initialize options with defaults.
Definition test.hpp:41
static const unsigned int deffixprob
Default fixpoint probability.
Definition test.hh:96
bool list
Whether to list all tests.
Definition test.hh:106
unsigned int iter
Number of iterations for each test.
Definition test.hh:90
bool stop
Whether to stop on an error.
Definition test.hh:98
unsigned int threads
Number of threads to use.
Definition test.hh:86
unsigned int fixprob
The probability for computing a fixpoint.
Definition test.hh:94
static const int defiter
Default number of iterations.
Definition test.hh:92
LinearCongruentialGenerator< 2147483647, 48271, 44488, 3399 > RandomGenerator
Default values for linear congruential generator.
Definition random.hpp:183
General test support.
Definition assign.hh:52
Options opt
The options.