### Question:
HardConstraintCheckerFactory implements ConstraintCheckerFactory { @Override public ConstraintChecker createConstraintChecker(TestModel testModel) { return new HardConstraintChecker( testModel, testModel.getExclusionConstraints(), testModel.getErrorConstraints()); }  @Override ConstraintChecker createConstraintChecker(TestModel testModel); @Override ConstraintChecker createConstraintCheckerWithNegation(TestModel testModel, TupleList toBeNegated);  }### Answer:
@Test void testCreateConstraintChecker() { final List<TupleList> forbiddenTupleLists = new ArrayList<>(); forbiddenTupleLists.add(new TupleList(1, new int[]{0, 1}, Arrays.asList(new int[]{0, 0}, new int[]{1, 1}))); final TestModel model = new TestModel(2, new int[]{2, 2, 2}, forbiddenTupleLists, Collections.emptyList()); final ConstraintChecker solver = new HardConstraintCheckerFactory().createConstraintChecker(model); final ConstraintChecker otherSolver = new HardConstraintChecker(model, model.getExclusionConstraints(), model.getErrorConstraints()); assertEquals(otherSolver.isValid(new int[]{1, 0, 1}), solver.isValid(new int[]{1, 0, 1})); assertEquals(otherSolver.isValid(new int[]{0, 0, 1}), solver.isValid(new int[]{0, 0, 1})); }