Skip to content

Commit 630460a

Browse files
committed
test: add benches for TheAlgorithms/backtracking
1 parent c81f446 commit 630460a

18 files changed

+175
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from backtracking.all_combinations import combination_lists, generate_all_combinations
2+
3+
4+
def test_combination_lists(benchmark):
5+
benchmark(combination_lists, n=4, k=2)
6+
7+
8+
def test_generate_all_combinations(benchmark):
9+
benchmark(generate_all_combinations, n=4, k=2)
10+
11+
12+
def test_generate_all_combinations_edge_case(benchmark):
13+
benchmark(generate_all_combinations, n=0, k=0)
14+
15+
16+
def test_generate_all_combinations_larger(benchmark):
17+
benchmark(generate_all_combinations, n=5, k=4)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from backtracking.all_permutations import generate_all_permutations
2+
3+
4+
def test_generate_all_permutations(benchmark):
5+
sequence = [1, 2, 3]
6+
benchmark(generate_all_permutations, sequence)
7+
8+
9+
def test_generate_all_permutations_str(benchmark):
10+
sequence = ["A", "B", "C"]
11+
benchmark(generate_all_permutations, sequence)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from backtracking.all_subsequences import generate_all_subsequences
2+
3+
4+
def test_generate_all_subsequences(benchmark):
5+
sequence = [3, 2, 1]
6+
benchmark(generate_all_subsequences, sequence)
7+
8+
9+
def test_generate_all_subsequences_str(benchmark):
10+
sequence = ["A", "B"]
11+
benchmark(generate_all_subsequences, sequence)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from backtracking.coloring import color
2+
3+
4+
def test_color(benchmark):
5+
graph = [
6+
[0, 1, 0, 0, 0],
7+
[1, 0, 1, 0, 1],
8+
[0, 1, 0, 1, 0],
9+
[0, 1, 1, 0, 0],
10+
[0, 1, 0, 0, 0],
11+
]
12+
max_colors = 3
13+
benchmark(color, graph, max_colors)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from backtracking.combination_sum import combination_sum
2+
3+
4+
def test_combination_sum(benchmark):
5+
candidates = [2, 3, 5]
6+
target = 8
7+
benchmark(combination_sum, candidates, target)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from backtracking.crossword_puzzle_solver import solve_crossword
2+
3+
4+
def test_solve_crossword(benchmark):
5+
puzzle = [[""] * 3 for _ in range(3)]
6+
words = ["cat", "dog", "car"]
7+
benchmark(solve_crossword, puzzle, words)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from backtracking.generate_parentheses import generate_parenthesis
2+
3+
4+
def test_generate_parenthesis(benchmark):
5+
n = 3
6+
benchmark(generate_parenthesis, n)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from backtracking.hamiltonian_cycle import hamilton_cycle
2+
3+
4+
def test_hamilton_cycle(benchmark):
5+
graph = [
6+
[0, 1, 0, 1, 0],
7+
[1, 0, 1, 1, 1],
8+
[0, 1, 0, 0, 1],
9+
[1, 1, 0, 0, 1],
10+
[0, 1, 1, 1, 0],
11+
]
12+
benchmark(hamilton_cycle, graph)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from backtracking.knight_tour import get_valid_pos, is_complete, open_knight_tour
2+
3+
4+
def test_get_valid_pos(benchmark):
5+
benchmark(get_valid_pos, (1, 3), 4)
6+
7+
8+
def test_is_complete(benchmark):
9+
benchmark(is_complete, [[1]])
10+
11+
12+
def test_open_knight_tour(benchmark):
13+
benchmark(open_knight_tour, 1)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from backtracking.match_word_pattern import match_word_pattern
2+
3+
4+
def test_match_word_pattern(benchmark):
5+
benchmark(match_word_pattern, "aba", "GraphTreesGraph")

0 commit comments

Comments
 (0)