#include "formula_profile.h"

// Example matcher for smoke tests. Real matcher packages should replace this
// with a conservative structural boundary for their target solver.
LYMPHOSAT_MATCHER {
    return profile.num_vars >= 500 &&
           profile.num_vars <= 1100 &&
           profile.clauses_seen >= 2000 &&
           profile.clauses_seen <= 5000 &&
           profile.binary_clause_fraction >= 0.03 &&
           profile.binary_clause_fraction <= 0.05 &&
           profile.ternary_clause_fraction >= 0.95 &&
           profile.all_positive_clause_fraction >= 0.12 &&
           profile.all_positive_clause_fraction <= 0.14 &&
           profile.all_negative_clause_fraction >= 0.12 &&
           profile.all_negative_clause_fraction <= 0.14 &&
           profile.horn_clause_fraction >= 0.50 &&
           profile.horn_clause_fraction <= 0.53 &&
           profile.dual_horn_clause_fraction >= 0.50 &&
           profile.dual_horn_clause_fraction <= 0.52 &&
           profile.exactly_one_intra_pair_coverage >= 0.0 &&
           profile.exactly_one_intra_pair_coverage <= 0.02 &&
           profile.binary_vars_touched_fraction >= 0.24 &&
           profile.binary_vars_touched_fraction <= 0.30 &&
           profile.binary_graph_degree_mean >= 1.10 &&
           profile.binary_graph_degree_mean <= 1.13 &&
           profile.positive_block_candidate_len == 3;
}
