this repo has no description
1/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2/*
3 * Main authors:
4 * Christian Schulte <schulte@gecode.org>
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.org
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
41 Options::Options(void)
42 : seed(0), iter(defiter), fixprob(deffixprob), stop(true), log(false), testpat(), start_from(nullptr), list(false)
43 {}
44
45 /*
46 * Base class for tests
47 *
48 */
49 inline const std::string&
50 Base::name(void) const {
51 return _name;
52 }
53 inline Base*
54 Base::tests(void) {
55 return _tests;
56 }
57 inline Base*
58 Base::next(void) const {
59 return _next;
60 }
61 inline void
62 Base::next(Base* n) {
63 _next=n;
64 }
65 inline bool
66 Base::fixpoint(void) {
67 return fixpoint(_rand);
68 }
69
70 inline bool
71 Base::fixpoint(Gecode::Support::RandomGenerator& rand) {
72 return rand(opt.fixprob) == 0;
73 }
74
75 inline std::string
76 Base::str(bool b) {
77 std::stringstream s;
78 if (b)
79 s << "+";
80 else
81 s << "-";
82 return s.str();
83 }
84
85 inline std::string
86 Base::str(int i) {
87 std::stringstream s;
88 s << i;
89 return s.str();
90 }
91
92 inline std::string
93 Base::str(const Gecode::IntArgs& x) {
94 std::string s = "";
95 for (int i=0; i<x.size()-1; i++)
96 s += str(x[i]) + ",";
97 return "[" + s + str(x[x.size()-1]) + "]";
98 }
99
100
101}
102
103// STATISTICS: test-core