Skip to content

Commit

Permalink
refactor: reorganize and restore tests for QueensGenerator functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
knakamura13 committed Aug 13, 2024
1 parent 1e2bca6 commit 70f3909
Showing 1 changed file with 62 additions and 59 deletions.
121 changes: 62 additions & 59 deletions tests/test_generators.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,65 +19,6 @@


# noinspection PyTypeChecker
class TestQueensGenerator:

def test_generate_size_zero(self):
"""Test generate method raises ValueError when size is zero."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, size=0)
assert str(excinfo.value) == "Size must be a positive integer. Got 0"

def test_generate_negative_size(self):
"""Test generate method raises ValueError when size is negative."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, size=-5)
assert str(excinfo.value) == "Size must be a positive integer. Got -5"

def test_generate_non_integer_size(self):
"""Test generate method raises ValueError when size is a non-integer value."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, size="ten")
assert str(excinfo.value) == "Size must be a positive integer. Got ten"

def test_generate_invalid_seed(self):
"""Test generate method raises ValueError when seed is not an integer."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(seed="not_an_int")
assert str(excinfo.value) == "Seed must be an integer. Got not_an_int"

def test_generate_invalid_maximize(self):
"""Test generate method raises ValueError when maximize is not a boolean."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, maximize="yes")
assert str(excinfo.value) == "Maximize must be a boolean. Got yes"

def test_generate_default_size(self):
"""Test generate method with default size."""
problem = QueensGenerator.generate(SEED)

assert problem.length == 20

def test_generate_with_seed(self):
"""Test generate method with a specified seed."""
problem = QueensGenerator.generate(SEED)
np.random.seed(SEED)
expected_problem = QueensOpt(length=20)

assert problem.length == expected_problem.length
assert problem.__class__ == expected_problem.__class__

def test_generate_custom_size(self):
"""Test generate method with custom size."""
size = 30
problem = QueensGenerator.generate(SEED, size=size)

assert problem.length == size

def test_generate_maximize(self):
"""Test generate method with maximize set to True."""
problem = QueensGenerator.generate(SEED, maximize=True)

assert problem.maximize is True
class TestContinuousPeaksGenerator:

def test_generate_size_zero(self):
Expand Down Expand Up @@ -546,3 +487,65 @@ def test_generate_large_max_connections(self):

assert problem.length == number_of_nodes
assert problem.source_graph.number_of_edges() > 0


# noinspection PyTypeChecker
class TestQueensGenerator:

def test_generate_size_zero(self):
"""Test generate method raises ValueError when size is zero."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, size=0)
assert str(excinfo.value) == "Size must be a positive integer. Got 0"

def test_generate_negative_size(self):
"""Test generate method raises ValueError when size is negative."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, size=-5)
assert str(excinfo.value) == "Size must be a positive integer. Got -5"

def test_generate_non_integer_size(self):
"""Test generate method raises ValueError when size is a non-integer value."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, size="ten")
assert str(excinfo.value) == "Size must be a positive integer. Got ten"

def test_generate_invalid_seed(self):
"""Test generate method raises ValueError when seed is not an integer."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(seed="not_an_int")
assert str(excinfo.value) == "Seed must be an integer. Got not_an_int"

def test_generate_invalid_maximize(self):
"""Test generate method raises ValueError when maximize is not a boolean."""
with pytest.raises(ValueError) as excinfo:
QueensGenerator.generate(SEED, maximize="yes")
assert str(excinfo.value) == "Maximize must be a boolean. Got yes"

def test_generate_default_size(self):
"""Test generate method with default size."""
problem = QueensGenerator.generate(SEED)

assert problem.length == 20

def test_generate_with_seed(self):
"""Test generate method with a specified seed."""
problem = QueensGenerator.generate(SEED)
np.random.seed(SEED)
expected_problem = QueensOpt(length=20)

assert problem.length == expected_problem.length
assert problem.__class__ == expected_problem.__class__

def test_generate_custom_size(self):
"""Test generate method with custom size."""
size = 30
problem = QueensGenerator.generate(SEED, size=size)

assert problem.length == size

def test_generate_maximize(self):
"""Test generate method with maximize set to True."""
problem = QueensGenerator.generate(SEED, maximize=True)

assert problem.maximize == 1.0

0 comments on commit 70f3909

Please sign in to comment.