#!/bin/bash #fzn tests retrived from Mistral-2.0-master at https://github.com/ehebrard/Mistral-2.0/tree/master/fz/fcts/passed ARR=(src/utils/flatzinc/tests/*.fzn) echo "Testing all FlatZinc constraints in folder src/utils/flatzinc/tests" echo "________________________________________________________________________" for ((i=0; i<${#ARR[@]}; i++)); do echo "${ARR[$i]}" OUTPUT="$(CL_CONFIG_USE_VECTORIZER=false ./PHACT -FZN ${ARR[$i]} -D CPU:1/1/1 -V -COUNT)" #OUTPUT="$(CL_CONFIG_USE_VECTORIZER=false ./PHACT -FZN ${ARR[$i]} -D CPU:1/1/1 -V)" echo "${OUTPUT}" echo " " if [ ${ARR[$i]} == "src/utils/flatzinc/tests/array_bool_and.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/array_bool_element.fzn" ]; then echo "Correct solution: 2" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/array_bool_or.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/array_bool_xor.fzn" ]; then echo "Correct solution: 8" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/array_int_element.fzn" ]; then echo "Correct solution: 2" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/array_var_bool_element.fzn" ]; then echo "Correct solution: 8" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/array_var_int_element.fzn" ]; then echo "Correct solution: 8" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool2int.fzn" ]; then echo "Correct solution: 2" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_and.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_clause.fzn" ]; then echo "Correct solution: 3" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_eq.fzn" ]; then echo "Correct solution: 2" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_eq_reif.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_le.fzn" ]; then echo "Correct solution: 3" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_le_reif.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_lin_eq.fzn" ]; then echo "Correct solution: 8" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_lin_le.fzn" ]; then echo "Correct solution: 3" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_lt.fzn" ]; then echo "Correct solution: 1" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_lt_reif.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_not.fzn" ]; then echo "Correct solution: 2" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_or.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/bool_xor.fzn" ]; then echo "Correct solution: 4" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_div.fzn" ]; then echo "Correct solution: 36" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_eq.fzn" ]; then echo "Correct solution: 9" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_eq_reif.fzn" ]; then echo "Correct solution: 96" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_le.fzn" ]; then echo "Correct solution: 22" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_le_reif.fzn" ]; then echo "Correct solution: 32" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lin_eq.fzn" ]; then echo "Correct solution: 7" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lin_eq_reif.fzn" ]; then echo "Correct solution: 16" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lin_le_reif.fzn" ]; then echo "Correct solution: 336" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lin_le.fzn" ]; then echo "Correct solution: 41" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lin_ne_reif.fzn" ]; then echo "Correct solution: 24" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lin_ne.fzn" ]; then echo "Correct solution: 131" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lt_reif.fzn" ]; then echo "Correct solution: 18" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_lt.fzn" ]; then echo "Correct solution: 35" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_max.fzn" ]; then echo "Correct solution: 28" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_min.fzn" ]; then echo "Correct solution: 8" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_mod_2.fzn" ]; then echo "Correct solution: 11" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_ne.fzn" ]; then echo "Correct solution: 8" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_ne_reif.fzn" ]; then echo "Correct solution: 12" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_plus.fzn" ]; then echo "Correct solution: 9" elif [ ${ARR[$i]} == "src/utils/flatzinc/tests/int_times.fzn" ]; then echo "Correct solution: 22" else echo "No correct solution found in script for ${ARR[$i]}" exit 0 fi echo " " echo "________________________________________________________________________" echo "________________________________________________________________________" echo "________________________________________________________________________" echo " " echo "Press any key to continue" read -n 1 -p "Press any key to continue" echo " " done echo "________________________ Finish _______________________________"