Coverage report: 95%

Files Functions Classes

coverage.py v7.13.5, created at 2026-04-21 08:35 +0000

File function   statements missing excluded   coverage
src / hodoku / __init__.py (no function)   5 0 0   100%
src / hodoku / api.py _validate_puzzle   26 0 0   100%
src / hodoku / api.py Solver.__init__   5 0 0   100%
src / hodoku / api.py Solver.solve   3 0 0   100%
src / hodoku / api.py Solver.get_hint   11 1 0   91%
src / hodoku / api.py Solver.rate   3 0 0   100%
src / hodoku / api.py Solver.find_all_steps   4 0 0   100%
src / hodoku / api.py Solver._find_all_on_grid   25 1 0   96%
src / hodoku / api.py Generator.__init__   6 0 0   100%
src / hodoku / api.py Generator.generate   20 3 0   85%
src / hodoku / api.py Generator.validate   9 0 0   100%
src / hodoku / api.py (no function)   46 0 2   100%
src / hodoku / config.py make_candidates   1 0 0   100%
src / hodoku / config.py _default_solve_search   1 0 0   100%
src / hodoku / config.py _default_find_all_search   1 0 0   100%
src / hodoku / config.py SolverConfig.solver_steps   13 0 0   100%
src / hodoku / config.py SolverConfig.all_steps   12 0 0   100%
src / hodoku / config.py SolverConfig.step_config   25 0 0   100%
src / hodoku / config.py SolverConfig._difficulty_max_score   6 0 0   100%
src / hodoku / config.py (no function)   69 0 2   100%
src / hodoku / core / __init__.py (no function)   0 0 0   100%
src / hodoku / core / cell_set.py CellSet.__init__   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.add   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.remove   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.clear   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.set_all   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.set   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.and_   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.or_   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.and_not   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.intersection   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.union   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.difference   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.contains   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.is_empty   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.size   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.get   4 0 0   100%
src / hodoku / core / cell_set.py CellSet.first   3 0 0   100%
src / hodoku / core / cell_set.py CellSet.equals   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.__iter__   5 0 0   100%
src / hodoku / core / cell_set.py CellSet.__len__   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.__eq__   3 0 0   100%
src / hodoku / core / cell_set.py CellSet.__hash__   1 0 0   100%
src / hodoku / core / cell_set.py CellSet.__repr__   2 0 0   100%
src / hodoku / core / cell_set.py CellSet.clone   1 0 0   100%
src / hodoku / core / cell_set.py (no function)   29 0 0   100%
src / hodoku / core / grid.py _build_constraints   7 0 0   100%
src / hodoku / core / grid.py _build_buddies   15 0 0   100%
src / hodoku / core / grid.py Grid.__init__   13 0 0   100%
src / hodoku / core / grid.py Grid.set_sudoku   19 0 0   100%
src / hodoku / core / grid.py Grid.is_fixed   1 0 0   100%
src / hodoku / core / grid.py Grid.get_sudoku_string   1 0 0   100%
src / hodoku / core / grid.py Grid._del_cand   15 0 0   100%
src / hodoku / core / grid.py Grid.set_cell   21 0 0   100%
src / hodoku / core / grid.py Grid.del_candidate   1 0 0   100%
src / hodoku / core / grid.py Grid.get_value   1 0 0   100%
src / hodoku / core / grid.py Grid.get_candidates   6 0 0   100%
src / hodoku / core / grid.py Grid.is_solved   1 0 0   100%
src / hodoku / core / grid.py Grid.unsolved_count   1 0 0   100%
src / hodoku / core / grid.py Grid.unsolved_candidates_count   1 0 0   100%
src / hodoku / core / grid.py Grid.get_solution   1 0 0   100%
src / hodoku / core / grid.py Grid.set_solution   1 0 0   100%
src / hodoku / core / grid.py Grid.is_solution_set   1 0 0   100%
src / hodoku / core / grid.py Grid.clone   9 0 0   100%
src / hodoku / core / grid.py Grid.set   7 0 0   100%
src / hodoku / core / grid.py Grid.__repr__   1 0 0   100%
src / hodoku / core / grid.py (no function)   39 0 0   100%
src / hodoku / core / scoring.py (no function)   21 0 0   100%
src / hodoku / core / solution_step.py _cell_name   1 0 0   100%
src / hodoku / core / solution_step.py Candidate.__str__   1 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.add_index   1 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.add_value   1 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.add_candidate_to_delete   1 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.add_als   1 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.reset   10 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.is_net   5 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.get_chain_length   4 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.get_candidate_string   4 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.get_single_candidate_string   3 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.__str__   8 0 0   100%
src / hodoku / core / solution_step.py SolutionStep.__repr__   1 0 0   100%
src / hodoku / core / solution_step.py (no function)   46 0 0   100%
src / hodoku / core / types.py SolutionType.is_single   1 0 0   100%
src / hodoku / core / types.py (no function)   132 0 0   100%
src / hodoku / generator / __init__.py (no function)   3 0 0   100%
src / hodoku / generator / generator.py _StackEntry.__init__   4 0 0   100%
src / hodoku / generator / generator.py _del_cand_valid   18 0 0   100%
src / hodoku / generator / generator.py _set_cell_valid   26 1 0   96%
src / hodoku / generator / generator.py _copy_state   6 0 0   100%
src / hodoku / generator / generator.py _set_all_exposed_singles   15 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.__init__   7 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.valid_solution   5 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.get_number_of_solutions   4 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.get_solution   1 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.get_solution_count   1 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.get_solution_as_string   1 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.generate_sudoku   13 1 0   92%
src / hodoku / generator / generator.py SudokuGenerator._generate_full_grid   2 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator._do_generate_full_grid   53 6 0   89%
src / hodoku / generator / generator.py SudokuGenerator._generate_init_pos   36 2 0   94%
src / hodoku / generator / generator.py SudokuGenerator._generate_init_pos_pattern   7 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator._solve_grid   5 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator.solve_string   18 2 0   89%
src / hodoku / generator / generator.py SudokuGenerator.solve_values   26 2 0   92%
src / hodoku / generator / generator.py SudokuGenerator._solve   3 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator._solve_c   7 0 0   100%
src / hodoku / generator / generator.py SudokuGenerator._solve_py   52 2 0   96%
src / hodoku / generator / generator.py _rebuild_internal   27 0 0   100%
src / hodoku / generator / generator.py (no function)   38 0 0   100%
src / hodoku / generator / pattern.py GeneratorPattern.__post_init__   2 0 0   100%
src / hodoku / generator / pattern.py GeneratorPattern.num_givens   1 0 0   100%
src / hodoku / generator / pattern.py GeneratorPattern.clone   1 0 0   100%
src / hodoku / generator / pattern.py GeneratorPattern.__str__   1 0 0   100%
src / hodoku / generator / pattern.py (no function)   13 0 0   100%
src / hodoku / solver / __init__.py (no function)   0 0 0   100%
src / hodoku / solver / als.py _get_buddies_of_set   9 1 0   89%
src / hodoku / solver / als.py Als.__init__   6 0 0   100%
src / hodoku / solver / als.py Als.compute_fields   12 0 0   100%
src / hodoku / solver / als.py Als.get_chain_penalty   6 2 0   67%
src / hodoku / solver / als.py Als.__eq__   1 1 0   0%
src / hodoku / solver / als.py Als.__hash__   1 1 0   0%
src / hodoku / solver / als.py RestrictedCommon.__init__   5 0 0   100%
src / hodoku / solver / als.py RestrictedCommon.check_rc   12 0 0   100%
src / hodoku / solver / als.py _check_rc_int   17 2 0   88%
src / hodoku / solver / als.py _collect_alses   9 0 0   100%
src / hodoku / solver / als.py _check_als_recursive   14 0 0   100%
src / hodoku / solver / als.py _collect_rcs   38 0 0   100%
src / hodoku / solver / als.py _check_candidates_to_delete   21 0 0   100%
src / hodoku / solver / als.py _check_doubly_linked_als   16 0 0   100%
src / hodoku / solver / als.py _als_index_count   1 0 0   100%
src / hodoku / solver / als.py _als_index_summe   6 6 0   0%
src / hodoku / solver / als.py _als_cmp   14 11 0   21%
src / hodoku / solver / als.py _best_step   5 0 0   100%
src / hodoku / solver / als.py _record_step   4 0 0   100%
src / hodoku / solver / als.py _RCForDeathBlossom.__init__   2 0 0   100%
src / hodoku / solver / als.py _RCForDeathBlossom.add_als_for_candidate   2 0 0   100%
src / hodoku / solver / als.py AlsSolver.__init__   4 0 0   100%
src / hodoku / solver / als.py AlsSolver.get_step   11 3 0   73%
src / hodoku / solver / als.py AlsSolver.find_all   11 1 0   91%
src / hodoku / solver / als.py AlsSolver._find_als_xz   23 1 0   96%
src / hodoku / solver / als.py AlsSolver._find_als_xz_all   24 1 0   96%
src / hodoku / solver / als.py AlsSolver._find_als_xy_wing   31 1 0   97%
src / hodoku / solver / als.py AlsSolver._find_als_xy_wing_all   32 0 0   100%
src / hodoku / solver / als.py AlsSolver._find_als_xy_chain   13 0 0   100%
src / hodoku / solver / als.py AlsSolver._find_als_xy_chain_all   13 0 0   100%
src / hodoku / solver / als.py AlsSolver._chain_recursive   55 7 0   87%
src / hodoku / solver / als.py AlsSolver._find_death_blossom_all   20 0 0   100%
src / hodoku / solver / als.py AlsSolver._find_death_blossom   22 22 0   0%
src / hodoku / solver / als.py AlsSolver._collect_rcs_for_death_blossom   17 0 0   100%
src / hodoku / solver / als.py AlsSolver._db_recursive   29 4 0   86%
src / hodoku / solver / als.py AlsSolver._db_check_eliminations   36 1 0   97%
src / hodoku / solver / als.py _DBState.__init__   4 0 0   100%
src / hodoku / solver / als.py _identify_pivot   10 1 0   90%
src / hodoku / solver / als.py (no function)   55 0 2   100%
src / hodoku / solver / brute_force.py _build_peers   12 0 0   100%
src / hodoku / solver / brute_force.py _allowed   4 0 0   100%
src / hodoku / solver / brute_force.py _solve_bt   10 0 0   100%
src / hodoku / solver / brute_force.py BruteForceSolver.__init__   2 0 0   100%
src / hodoku / solver / brute_force.py BruteForceSolver._ensure_solution   10 2 0   80%
src / hodoku / solver / brute_force.py BruteForceSolver.get_step   13 1 0   92%
src / hodoku / solver / brute_force.py (no function)   12 0 0   100%
src / hodoku / solver / chain_utils.py make_entry   14 0 0   100%
src / hodoku / solver / chain_utils.py make_entry_simple   1 0 0   100%
src / hodoku / solver / chain_utils.py get_cell_index   3 1 0   67%
src / hodoku / solver / chain_utils.py get_cell_index2   4 1 0   75%
src / hodoku / solver / chain_utils.py get_cell_index3   4 1 0   75%
src / hodoku / solver / chain_utils.py get_candidate   3 1 0   67%
src / hodoku / solver / chain_utils.py is_strong   3 1 0   67%
src / hodoku / solver / chain_utils.py get_node_type   3 1 0   67%
src / hodoku / solver / chain_utils.py get_als_index   3 1 0   67%
src / hodoku / solver / chain_utils.py get_lower_als_index   1 0 0   100%
src / hodoku / solver / chain_utils.py get_higher_als_index   1 0 0   100%
src / hodoku / solver / chain_utils.py make_entry_als   1 0 0   100%
src / hodoku / solver / chain_utils.py replace_als_index   3 3 0   0%
src / hodoku / solver / chain_utils.py set_strong   3 3 0   0%
src / hodoku / solver / chain_utils.py (no function)   31 0 0   100%
src / hodoku / solver / chains.py _build_x_links   21 0 0   100%
src / hodoku / solver / chains.py _elim_sort_key   6 0 0   100%
src / hodoku / solver / chains.py _step_sort_key   1 0 0   100%
src / hodoku / solver / chains.py ChainSolver.__init__   4 0 0   100%
src / hodoku / solver / chains.py ChainSolver.get_step   9 1 0   89%
src / hodoku / solver / chains.py ChainSolver.find_all   9 1 0   89%
src / hodoku / solver / chains.py ChainSolver._find_turbot_fish   1 0 0   100%
src / hodoku / solver / chains.py ChainSolver._find_x_chain   1 0 0   100%
src / hodoku / solver / chains.py ChainSolver._find_x_chain_impl   26 1 0   96%
src / hodoku / solver / chains.py ChainSolver._find_x_chain_impl_all   24 0 0   100%
src / hodoku / solver / chains.py ChainSolver._dfs_x   24 0 0   100%
src / hodoku / solver / chains.py ChainSolver._find_xy_chain   1 0 0   100%
src / hodoku / solver / chains.py ChainSolver._find_remote_pair   1 0 0   100%
src / hodoku / solver / chains.py ChainSolver._find_xy_type   25 1 0   96%
src / hodoku / solver / chains.py ChainSolver._find_xy_type_all   24 0 0   100%
src / hodoku / solver / chains.py ChainSolver._dfs_xy   45 0 0   100%
src / hodoku / solver / chains.py ChainSolver._check_rp   32 1 0   97%
src / hodoku / solver / chains.py ChainSolver._record_xy   11 0 0   100%
src / hodoku / solver / chains.py ChainSolver._record   11 0 0   100%
src / hodoku / solver / chains.py (no function)   26 0 2   100%
src / hodoku / solver / coloring.py ColoringSolver.__init__   1 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver.get_step   5 1 0   80%
src / hodoku / solver / coloring.py ColoringSolver.find_all   9 1 0   89%
src / hodoku / solver / coloring.py ColoringSolver._find_simple_colors_all   20 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._find_multi_colors_all   51 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._do_coloring   20 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._color_dfs   9 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._conjugate   8 1 0   88%
src / hodoku / solver / coloring.py ColoringSolver._unit_mask   4 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._find_simple_colors   10 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._check_wrap   25 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._check_trap   22 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._find_multi_colors   39 13 0   67%
src / hodoku / solver / coloring.py ColoringSolver._set_sees_both   13 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._sets_intersect_buddies   5 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._trap_elim   17 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._cells_with_cand   7 7 0   0%
src / hodoku / solver / coloring.py ColoringSolver._make_mc_step   9 0 0   100%
src / hodoku / solver / coloring.py ColoringSolver._add_color_candidates   2 0 0   100%
src / hodoku / solver / coloring.py (no function)   24 0 0   100%
src / hodoku / solver / fish.py _fin_buddies   7 0 0   100%
src / hodoku / solver / fish.py _classify_fish   5 0 0   100%
src / hodoku / solver / fish.py _unit_type_bit   5 0 0   100%
src / hodoku / solver / fish.py _build_unit_pools   30 2 0   93%
src / hodoku / solver / fish.py _apply_siamese   35 3 0   91%
src / hodoku / solver / fish.py FishSolver.__init__   8 0 0   100%
src / hodoku / solver / fish.py FishSolver.get_step   10 1 0   90%
src / hodoku / solver / fish.py FishSolver.find_all   27 1 0   96%
src / hodoku / solver / fish.py FishSolver._find_basic_fish_all   40 0 0   100%
src / hodoku / solver / fish.py FishSolver._find_finned_fish_all   56 0 0   100%
src / hodoku / solver / fish.py FishSolver._find_basic_fish   34 0 0   100%
src / hodoku / solver / fish.py FishSolver._find_finned_fish   50 0 0   100%
src / hodoku / solver / fish.py FishSolver._find_generalized_fish_all   118 0 0   100%
src / hodoku / solver / fish.py FishSolver._make_general_step   38 0 0   100%
src / hodoku / solver / fish.py FishSolver._make_step   26 0 0   100%
src / hodoku / solver / fish.py (no function)   50 0 2   100%
src / hodoku / solver / misc.py _popcount   1 0 0   100%
src / hodoku / solver / misc.py _iter_bits   4 0 0   100%
src / hodoku / solver / misc.py _cand_mask_for_cells   4 4 0   0%
src / hodoku / solver / misc.py MiscSolver.__init__   1 0 0   100%
src / hodoku / solver / misc.py MiscSolver.get_step   3 1 0   67%
src / hodoku / solver / misc.py MiscSolver.find_all   5 1 0   80%
src / hodoku / solver / misc.py MiscSolver._find_sdc   17 0 0   100%
src / hodoku / solver / misc.py MiscSolver._check_intersection   25 0 0   100%
src / hodoku / solver / misc.py MiscSolver._check_houses   2 0 0   100%
src / hodoku / solver / misc.py MiscSolver._search_non_block   4 1 0   75%
src / hodoku / solver / misc.py MiscSolver._enum_nb_subsets   21 0 0   100%
src / hodoku / solver / misc.py MiscSolver._search_block   4 1 0   75%
src / hodoku / solver / misc.py MiscSolver._enum_blk_subsets   24 0 0   100%
src / hodoku / solver / misc.py MiscSolver._build_step   37 0 0   100%
src / hodoku / solver / misc.py (no function)   19 0 0   100%
src / hodoku / solver / simple.py SimpleSolver.__init__   1 0 0   100%
src / hodoku / solver / simple.py SimpleSolver.get_step   25 1 0   96%
src / hodoku / solver / simple.py SimpleSolver.find_full_house   11 0 0   100%
src / hodoku / solver / simple.py SimpleSolver.find_naked_single   9 0 0   100%
src / hodoku / solver / simple.py SimpleSolver.find_hidden_single   12 0 0   100%
src / hodoku / solver / simple.py SimpleSolver.find_all   28 2 0   93%
src / hodoku / solver / simple.py SimpleSolver._find_all_full_house   17 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._find_all_naked_singles   14 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._find_all_hidden_singles   17 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._find_locked_candidates   6 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._lc_in_units   28 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._lc_in_units_all   29 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._create_lc_step   9 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._find_naked_xle   8 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._find_naked_xle_all   7 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._naked_in_units   45 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._create_subset_step   51 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._find_hidden_xle   7 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._find_hidden_xle_all   5 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._hidden_in_units   51 0 0   100%
src / hodoku / solver / simple.py SimpleSolver._create_hidden_step   23 0 0   100%
src / hodoku / solver / simple.py (no function)   26 0 0   100%
src / hodoku / solver / single_digit.py _build_er_tables   11 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver.__init__   4 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver.get_step   17 11 0   35%
src / hodoku / solver / single_digit.py SingleDigitSolver.find_all   15 1 0   93%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_skyscraper_all   50 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_two_string_kite_all   42 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_empty_rectangle_all   30 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_dual_two_string_kites   26 1 0   96%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_dual_empty_rectangles   28 1 0   96%
src / hodoku / solver / single_digit.py SingleDigitSolver._collect_pairs   13 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_skyscraper   45 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_two_string_kite   37 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver._find_empty_rectangle   27 0 0   100%
src / hodoku / solver / single_digit.py SingleDigitSolver._check_er   44 0 0   100%
src / hodoku / solver / single_digit.py (no function)   25 0 2   100%
src / hodoku / solver / solver.py _apply_step   5 0 0   100%
src / hodoku / solver / solver.py SudokuSolver.__init__   4 0 0   100%
src / hodoku / solver / solver.py SudokuSolver.solve   30 0 0   100%
src / hodoku / solver / solver.py SudokuSolver._find_next_step   5 0 0   100%
src / hodoku / solver / solver.py (no function)   22 0 2   100%
src / hodoku / solver / step_finder.py SudokuStepFinder.__init__   13 0 0   100%
src / hodoku / solver / step_finder.py SudokuStepFinder.find_all   24 0 0   100%
src / hodoku / solver / step_finder.py SudokuStepFinder.get_step   25 1 0   96%
src / hodoku / solver / step_finder.py (no function)   32 0 2   100%
src / hodoku / solver / table_entry.py TableEntry.__init__   6 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.reset   10 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.add_entry   22 1 0   95%
src / hodoku / solver / table_entry.py TableEntry.add_entry_simple   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.add_entry_with_ri   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.get_cell_index   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.is_strong   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.get_candidate   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.get_node_type   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.is_full   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.get_entry_index_by_value   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.get_entry_index   3 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.get_distance   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry._set_distance   3 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.is_expanded   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.set_expanded   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.is_on_table   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.set_on_table   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.is_extended_table   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.set_extended_table   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.set_extended_table_last   1 1 0   0%
src / hodoku / solver / table_entry.py TableEntry.get_ret_index   1 0 0   100%
src / hodoku / solver / table_entry.py TableEntry.get_ret_index_count   1 1 0   0%
src / hodoku / solver / table_entry.py _make_ret_index   19 5 0   74%
src / hodoku / solver / table_entry.py _get_ret_index   6 0 0   100%
src / hodoku / solver / table_entry.py _get_ret_index_count   7 7 0   0%
src / hodoku / solver / table_entry.py (no function)   35 0 0   100%
src / hodoku / solver / tabling.py _make_group_node   16 0 0   100%
src / hodoku / solver / tabling.py _collect_group_nodes   22 0 0   100%
src / hodoku / solver / tabling.py _iter_bits   4 0 0   100%
src / hodoku / solver / tabling.py _bit_count   1 0 0   100%
src / hodoku / solver / tabling.py _first_bit   1 0 0   100%
src / hodoku / solver / tabling.py _get_all_candidates   6 0 0   100%
src / hodoku / solver / tabling.py TablingSolver.__init__   32 0 0   100%
src / hodoku / solver / tabling.py TablingSolver.get_step   19 1 0   95%
src / hodoku / solver / tabling.py TablingSolver.find_all   13 9 0   31%
src / hodoku / solver / tabling.py TablingSolver.do_step   6 6 0   0%
src / hodoku / solver / tabling.py TablingSolver._get_nice_loops   17 1 0   94%
src / hodoku / solver / tabling.py TablingSolver._get_forcing_chains   6 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._get_forcing_nets   11 1 0   91%
src / hodoku / solver / tabling.py TablingSolver._fill_tables   37 1 0   97%
src / hodoku / solver / tabling.py TablingSolver._fill_tables_nets   17 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._get_table_entry_net   14 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._set_cell_net   42 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._find_all_singles_net   15 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._get_next_extended_table_entry   5 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._fill_tables_with_group_nodes   81 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._get_als_table_entry   5 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._fill_tables_with_als   94 2 0   98%
src / hodoku / solver / tabling.py TablingSolver._expand_tables   63 5 0   92%
src / hodoku / solver / tabling.py TablingSolver._init_candidates_allowed   11 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._check_forcing_chains   10 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._check_one_chain   89 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._check_house_set   19 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._check_house_del   19 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._check_two_chains   26 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._check_all_chains_for_house   18 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._check_entry_list   31 1 0   97%
src / hodoku / solver / tabling.py TablingSolver._reset_tmp_chains   1 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._build_chain   24 4 0   83%
src / hodoku / solver / tabling.py TablingSolver._build_chain_inner   63 5 0   92%
src / hodoku / solver / tabling.py TablingSolver._add_chain   71 3 0   96%
src / hodoku / solver / tabling.py TablingSolver._adjust_type   5 0 0   100%
src / hodoku / solver / tabling.py TablingSolver._replace_or_copy_step   18 2 0   89%
src / hodoku / solver / tabling.py TablingSolver.find_all_nice_loops   18 2 0   89%
src / hodoku / solver / tabling.py TablingSolver._check_nice_loops   9 1 0   89%
src / hodoku / solver / tabling.py TablingSolver._check_nice_loop   51 2 0   96%
src / hodoku / solver / tabling.py TablingSolver._check_continuous_nl_eliminations   59 1 0   98%
src / hodoku / solver / tabling.py TablingSolver._check_aics   23 1 0   96%
src / hodoku / solver / tabling.py TablingSolver._check_aic   41 1 0   98%
src / hodoku / solver / tabling.py _get_node_buddies   17 1 0   94%
src / hodoku / solver / tabling.py _tabling_sort_cmp   30 15 0   50%
src / hodoku / solver / tabling.py _is_single   2 0 0   100%
src / hodoku / solver / tabling.py _is_equivalent   10 2 0   80%
src / hodoku / solver / tabling.py _same_candidates   11 1 0   91%
src / hodoku / solver / tabling.py _same_integers   6 2 0   67%
src / hodoku / solver / tabling.py _compare_types   6 6 0   0%
src / hodoku / solver / tabling.py _compare_candidates_sorted   9 9 0   0%
src / hodoku / solver / tabling.py _get_index_summe   6 0 0   100%
src / hodoku / solver / tabling.py _is_fish   2 0 0   100%
src / hodoku / solver / tabling.py _is_kraken_fish   1 0 0   100%
src / hodoku / solver / tabling.py _compare_fish_types   1 1 0   0%
src / hodoku / solver / tabling.py _fc_sort_cmp   28 5 0   82%
src / hodoku / solver / tabling.py _compare_candidates_to_delete   9 1 0   89%
src / hodoku / solver / tabling.py _chain_length   4 4 0   0%
src / hodoku / solver / tabling.py _make_ret_index_single   3 1 0   67%
src / hodoku / solver / tabling.py (no function)   86 0 2   100%
src / hodoku / solver / templates.py _generate_templates   4 0 0   100%
src / hodoku / solver / templates.py _generate_templates.backtrack   10 0 0   100%
src / hodoku / solver / templates.py _init_cand_templates   43 0 0   100%
src / hodoku / solver / templates.py TemplateSolver.__init__   1 0 0   100%
src / hodoku / solver / templates.py TemplateSolver.get_step   2 2 0   0%
src / hodoku / solver / templates.py TemplateSolver.find_all   11 1 0   91%
src / hodoku / solver / templates.py TemplateSolver._find_template_set   15 0 0   100%
src / hodoku / solver / templates.py TemplateSolver._find_template_del   15 0 0   100%
src / hodoku / solver / templates.py (no function)   14 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver.__init__   1 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver.get_step   7 1 0   86%
src / hodoku / solver / uniqueness.py UniquenessSolver.find_all   10 1 0   90%
src / hodoku / solver / uniqueness.py UniquenessSolver._find_ur_all   13 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._find_ar   10 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._find_ar_for_start   40 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._check_ar   36 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._check_ar._emit   9 1 0   89%
src / hodoku / solver / uniqueness.py UniquenessSolver._compute_allowed   14 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._find_bug_plus_1   50 4 0   92%
src / hodoku / solver / uniqueness.py UniquenessSolver._find_ur   18 1 0   94%
src / hodoku / solver / uniqueness.py UniquenessSolver._find_ur_for_pair   35 1 0   97%
src / hodoku / solver / uniqueness.py UniquenessSolver._find_ur_for_pair._has_cands   3 1 0   67%
src / hodoku / solver / uniqueness.py UniquenessSolver._check_ur   130 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._check_ur.emit   8 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._check_ur.make_step   6 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._check_ut3_recursive   48 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._check_hidden_rect   30 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._line_mask   4 0 0   100%
src / hodoku / solver / uniqueness.py UniquenessSolver._col_mask   4 0 0   100%
src / hodoku / solver / uniqueness.py _same_line_or_col   4 1 0   75%
src / hodoku / solver / uniqueness.py _same_block   6 1 0   83%
src / hodoku / solver / uniqueness.py (no function)   26 0 0   100%
src / hodoku / solver / wings.py WingSolver.__init__   1 0 0   100%
src / hodoku / solver / wings.py WingSolver.get_step   7 1 0   86%
src / hodoku / solver / wings.py WingSolver.find_all   7 1 0   86%
src / hodoku / solver / wings.py WingSolver._find_wing_all   44 2 0   95%
src / hodoku / solver / wings.py WingSolver._find_w_wing_all   33 0 0   100%
src / hodoku / solver / wings.py WingSolver._find_xy_wing   1 0 0   100%
src / hodoku / solver / wings.py WingSolver._find_xyz_wing   1 0 0   100%
src / hodoku / solver / wings.py WingSolver._find_wing   39 2 0   95%
src / hodoku / solver / wings.py WingSolver._check_wing   36 1 0   97%
src / hodoku / solver / wings.py WingSolver._find_w_wing   25 0 0   100%
src / hodoku / solver / wings.py WingSolver._check_w_link   42 0 0   100%
src / hodoku / solver / wings.py WingSolver._unit_cells   2 0 0   100%
src / hodoku / solver / wings.py (no function)   17 0 0   100%
Total     6597 298 18   95%

No items found using the specified filter.