this repo has no description
1/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */ 2/* 3 * Main authors: 4 * Guido Tack <tack@gecode.org> 5 * 6 * Copyright: 7 * Guido Tack, 2014 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 34#include "test/flatzinc.hh" 35 36namespace Test { namespace FlatZinc { 37 38 namespace { 39 /// Helper class to create and register tests 40 class Create { 41 public: 42 43 /// Perform creation and registration 44 Create(void) { 45 (void) new FlatZincTest("sudoku", 46"predicate all_different_int(array [int] of var int: x);\n\ 47predicate bool_lin_ge(array [int] of int: a, array [int] of var bool: x, var int: c);\n\ 48predicate bool_lin_gt(array [int] of int: a, array [int] of var bool: x, var int: c);\n\ 49predicate bool_lin_lt(array [int] of int: a, array [int] of var bool: x, var int: c);\n\ 50predicate bool_lin_ne(array [int] of int: a, array [int] of var bool: x, var int: c);\n\ 51var 1..9: X____00001;\n\ 52var 1..9: X____00002;\n\ 53var 1..9: X____00003;\n\ 54var 1..9: X____00004;\n\ 55var 1..9: X____00005;\n\ 56var 1..9: X____00006;\n\ 57var 1..9: X____00007;\n\ 58var 1..9: X____00008;\n\ 59var 1..9: X____00009;\n\ 60var 1..9: X____00010;\n\ 61var 1..9: X____00011;\n\ 62var 1..9: X____00012;\n\ 63var 1..9: X____00013;\n\ 64var 1..9: X____00014;\n\ 65var 1..9: X____00015;\n\ 66var 1..9: X____00016;\n\ 67var 1..9: X____00017;\n\ 68var 1..9: X____00018;\n\ 69var 1..9: X____00019;\n\ 70var 1..9: X____00020;\n\ 71var 1..9: X____00021;\n\ 72var 1..9: X____00022;\n\ 73var 1..9: X____00023;\n\ 74var 1..9: X____00024;\n\ 75var 1..9: X____00025;\n\ 76var 1..9: X____00026;\n\ 77var 1..9: X____00027;\n\ 78var 1..9: X____00028;\n\ 79var 1..9: X____00029;\n\ 80var 1..9: X____00030;\n\ 81var 1..9: X____00031;\n\ 82var 1..9: X____00032;\n\ 83var 1..9: X____00033;\n\ 84var 1..9: X____00034;\n\ 85var 1..9: X____00035;\n\ 86var 1..9: X____00036;\n\ 87var 1..9: X____00037;\n\ 88var 1..9: X____00038;\n\ 89var 1..9: X____00039;\n\ 90var 1..9: X____00040;\n\ 91var 1..9: X____00041;\n\ 92var 1..9: X____00042;\n\ 93var 1..9: X____00043;\n\ 94var 1..9: X____00044;\n\ 95var 1..9: X____00045;\n\ 96var 1..9: X____00046;\n\ 97var 1..9: X____00047;\n\ 98var 1..9: X____00048;\n\ 99var 1..9: X____00049;\n\ 100var 1..9: X____00050;\n\ 101var 1..9: X____00051;\n\ 102var 1..9: X____00052;\n\ 103var 1..9: X____00053;\n\ 104array [1..81] of var 1..9: puzzle :: output_array([1..9, 1..9]) = [X____00001, X____00002, X____00003, X____00004, X____00005, X____00006, X____00007, X____00008, X____00009, X____00010, 6, 8, 4, X____00011, 1, X____00012, 7, X____00013, X____00014, X____00015, X____00016, X____00017, 8, 5, X____00018, 3, X____00019, X____00020, 2, 6, 8, X____00021, 9, X____00022, 4, X____00023, X____00024, X____00025, 7, X____00026, X____00027, X____00028, 9, X____00029, X____00030, X____00031, 5, X____00032, 1, X____00033, 6, 3, 2, X____00034, X____00035, 4, X____00036, 6, 1, X____00037, X____00038, X____00039, X____00040, X____00041, 3, X____00042, 2, X____00043, 7, 6, 9, X____00044, X____00045, X____00046, X____00047, X____00048, X____00049, X____00050, X____00051, X____00052, X____00053];\n\ 105constraint all_different_int([6, 1, X____00037, 2, X____00043, 7, X____00048, X____00049, X____00050]);\n\ 106constraint all_different_int([8, X____00021, 9, X____00026, X____00027, X____00028, 1, X____00033, 6]);\n\ 107constraint all_different_int([X____00001, X____00002, X____00003, X____00004, X____00005, X____00006, X____00007, X____00008, X____00009]);\n\ 108constraint all_different_int([X____00001, X____00002, X____00003, X____00010, 6, 8, X____00014, X____00015, X____00016]);\n\ 109constraint all_different_int([X____00001, X____00010, X____00014, X____00020, X____00024, X____00031, X____00035, X____00041, X____00045]);\n\ 110constraint all_different_int([X____00002, 6, X____00015, 2, X____00025, 5, 4, 3, X____00046]);\n\ 111constraint all_different_int([X____00003, 8, X____00016, 6, 7, X____00032, X____00036, X____00042, X____00047]);\n\ 112constraint all_different_int([X____00004, 4, X____00017, 8, X____00026, 1, 6, 2, X____00048]);\n\ 113constraint all_different_int([X____00004, X____00005, X____00006, 4, X____00011, 1, X____00017, 8, 5]);\n\ 114constraint all_different_int([X____00005, X____00011, 8, X____00021, X____00027, X____00033, 1, X____00043, X____00049]);\n\ 115constraint all_different_int([X____00006, 1, 5, 9, X____00028, 6, X____00037, 7, X____00050]);\n\ 116constraint all_different_int([X____00007, X____00008, X____00009, X____00012, 7, X____00013, X____00018, 3, X____00019]);\n\ 117constraint all_different_int([X____00007, X____00012, X____00018, X____00022, 9, 3, X____00038, 6, X____00051]);\n\ 118constraint all_different_int([X____00008, 7, 3, 4, X____00029, 2, X____00039, 9, X____00052]);\n\ 119constraint all_different_int([X____00009, X____00013, X____00019, X____00023, X____00030, X____00034, X____00040, X____00044, X____00053]);\n\ 120constraint all_different_int([X____00010, 6, 8, 4, X____00011, 1, X____00012, 7, X____00013]);\n\ 121constraint all_different_int([X____00014, X____00015, X____00016, X____00017, 8, 5, X____00018, 3, X____00019]);\n\ 122constraint all_different_int([X____00020, 2, 6, 8, X____00021, 9, X____00022, 4, X____00023]);\n\ 123constraint all_different_int([X____00020, 2, 6, X____00024, X____00025, 7, X____00031, 5, X____00032]);\n\ 124constraint all_different_int([X____00022, 4, X____00023, 9, X____00029, X____00030, 3, 2, X____00034]);\n\ 125constraint all_different_int([X____00024, X____00025, 7, X____00026, X____00027, X____00028, 9, X____00029, X____00030]);\n\ 126constraint all_different_int([X____00031, 5, X____00032, 1, X____00033, 6, 3, 2, X____00034]);\n\ 127constraint all_different_int([X____00035, 4, X____00036, 6, 1, X____00037, X____00038, X____00039, X____00040]);\n\ 128constraint all_different_int([X____00035, 4, X____00036, X____00041, 3, X____00042, X____00045, X____00046, X____00047]);\n\ 129constraint all_different_int([X____00038, X____00039, X____00040, 6, 9, X____00044, X____00051, X____00052, X____00053]);\n\ 130constraint all_different_int([X____00041, 3, X____00042, 2, X____00043, 7, 6, 9, X____00044]);\n\ 131constraint all_different_int([X____00045, X____00046, X____00047, X____00048, X____00049, X____00050, X____00051, X____00052, X____00053]);\n\ 132solve satisfy;\n\ 133", "puzzle = array2d(1..9, 1..9, [5, 9, 3, 7, 6, 2, 8, 1, 4, 2, 6, 8, 4, 3, 1, 5, 7, 9, 7, 1, 4, 9, 8, 5, 2, 3, 6, 3, 2, 6, 8, 5, 9, 1, 4, 7, 1, 8, 7, 3, 2, 4, 9, 6, 5, 4, 5, 9, 1, 7, 6, 3, 2, 8, 9, 4, 2, 6, 1, 8, 7, 5, 3, 8, 3, 5, 2, 4, 7, 6, 9, 1, 6, 7, 1, 5, 9, 3, 4, 8, 2]);\n\ 134----------\n\ 135"); 136 } 137 }; 138 139 Create c; 140 } 141 142}} 143 144// STATISTICS: test-flatzinc