#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    auto between = [](double value, double lo, double hi) {
        return value >= lo && value <= hi;
    };

    const bool simon_r =
        profile.dominant_clause_len == 3 &&
        between(profile.num_vars, 2688, 5248) &&
        between(profile.clauses_seen, 8896, 17600) &&
        between(profile.binary_clause_fraction, 0.23636363636363636, 0.23741007194244604) &&
        between(profile.ternary_clause_fraction, 0.7482014388489209, 0.7563636363636363) &&
        between(profile.all_positive_clause_fraction, 0.0028977272727272727, 0.00798111510791367) &&
        between(profile.all_negative_clause_fraction, 0.17800174013921113, 0.18008474576271186) &&
        between(profile.mixed_clause_fraction, 0.8129496402877698, 0.8181818181818182) &&
        between(profile.binary_vars_touched_fraction, 0.5952380952380952, 0.5975609756097561) &&
        between(profile.binary_graph_degree_mean, 2.64, 2.6530612244897958) &&
        between(profile.normalized_clause_span_mean, 0.13418479767184036, 0.1495689609027064) &&
        between(profile.small_span_clause_fraction, 0.007613636363636363, 0.0153) &&
        profile.negative_binary_fraction == 0.0 &&
        profile.positive_binary_fraction == 0.0 &&
        profile.mixed_binary_fraction == 1.0 &&
        profile.pure_var_fraction == 0.0 &&
        profile.positive_block_candidate_len == 0 &&
        profile.positive_block_clause_fraction == 0.0 &&
        profile.exactly_one_intra_pair_coverage == 0.0;
    return simon_r;
}
