tests for the last few issues (these test scripts should work with recent APIs, while the rest of the test suite needs an overhaul)
This commit is contained in:
parent
a57f0875f8
commit
2f4ebf3420
21 changed files with 1570 additions and 0 deletions
122
tests/issue_185_188_bounds_test.py
Normal file
122
tests/issue_185_188_bounds_test.py
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
"""Test for issues #185 and #188: bounds handling changes.
|
||||
|
||||
Issue #185: Remove .get_bounds() method - redundant with .bounds property
|
||||
Issue #188: Change .bounds and .global_bounds to return (pos, size) as pair of Vectors
|
||||
"""
|
||||
import mcrfpy
|
||||
import sys
|
||||
|
||||
def test_bounds():
|
||||
"""Test that bounds returns (Vector, Vector) tuple."""
|
||||
print("Testing bounds format...")
|
||||
|
||||
# Create a Frame with known position and size
|
||||
frame = mcrfpy.Frame(pos=(100, 200), size=(300, 400))
|
||||
bounds = frame.bounds
|
||||
|
||||
# Should be a tuple of 2 elements
|
||||
assert isinstance(bounds, tuple), f"Expected tuple, got {type(bounds)}"
|
||||
assert len(bounds) == 2, f"Expected 2 elements, got {len(bounds)}"
|
||||
|
||||
pos, size = bounds
|
||||
|
||||
# Check that pos is a Vector with correct values
|
||||
assert isinstance(pos, mcrfpy.Vector), f"Expected Vector for pos, got {type(pos)}"
|
||||
assert pos.x == 100, f"Expected pos.x=100, got {pos.x}"
|
||||
assert pos.y == 200, f"Expected pos.y=200, got {pos.y}"
|
||||
|
||||
# Check that size is a Vector with correct values
|
||||
assert isinstance(size, mcrfpy.Vector), f"Expected Vector for size, got {type(size)}"
|
||||
assert size.x == 300, f"Expected size.x=300, got {size.x}"
|
||||
assert size.y == 400, f"Expected size.y=400, got {size.y}"
|
||||
|
||||
print(" Frame bounds: PASS")
|
||||
|
||||
def test_global_bounds():
|
||||
"""Test that global_bounds returns (Vector, Vector) tuple."""
|
||||
print("Testing global_bounds format...")
|
||||
|
||||
frame = mcrfpy.Frame(pos=(50, 75), size=(150, 250))
|
||||
global_bounds = frame.global_bounds
|
||||
|
||||
# Should be a tuple of 2 elements
|
||||
assert isinstance(global_bounds, tuple), f"Expected tuple, got {type(global_bounds)}"
|
||||
assert len(global_bounds) == 2, f"Expected 2 elements, got {len(global_bounds)}"
|
||||
|
||||
pos, size = global_bounds
|
||||
assert isinstance(pos, mcrfpy.Vector), f"Expected Vector for pos, got {type(pos)}"
|
||||
assert isinstance(size, mcrfpy.Vector), f"Expected Vector for size, got {type(size)}"
|
||||
|
||||
print(" Frame global_bounds: PASS")
|
||||
|
||||
def test_get_bounds_removed():
|
||||
"""Test that get_bounds() method has been removed."""
|
||||
print("Testing get_bounds removal...")
|
||||
|
||||
frame = mcrfpy.Frame(pos=(0, 0), size=(100, 100))
|
||||
assert not hasattr(frame, 'get_bounds'), "get_bounds method should be removed"
|
||||
|
||||
print(" get_bounds removed: PASS")
|
||||
|
||||
def test_caption_bounds():
|
||||
"""Test bounds on Caption."""
|
||||
print("Testing Caption bounds...")
|
||||
|
||||
caption = mcrfpy.Caption(text="Test", pos=(25, 50))
|
||||
bounds = caption.bounds
|
||||
|
||||
assert isinstance(bounds, tuple), f"Expected tuple, got {type(bounds)}"
|
||||
assert len(bounds) == 2, f"Expected 2 elements, got {len(bounds)}"
|
||||
|
||||
pos, size = bounds
|
||||
assert isinstance(pos, mcrfpy.Vector), f"Expected Vector for pos, got {type(pos)}"
|
||||
assert isinstance(size, mcrfpy.Vector), f"Expected Vector for size, got {type(size)}"
|
||||
|
||||
# Caption should not have get_bounds
|
||||
assert not hasattr(caption, 'get_bounds'), "get_bounds method should be removed from Caption"
|
||||
|
||||
print(" Caption bounds: PASS")
|
||||
|
||||
def test_sprite_bounds():
|
||||
"""Test bounds on Sprite."""
|
||||
print("Testing Sprite bounds...")
|
||||
|
||||
sprite = mcrfpy.Sprite(pos=(10, 20))
|
||||
bounds = sprite.bounds
|
||||
|
||||
assert isinstance(bounds, tuple), f"Expected tuple, got {type(bounds)}"
|
||||
assert len(bounds) == 2, f"Expected 2 elements, got {len(bounds)}"
|
||||
|
||||
pos, size = bounds
|
||||
assert isinstance(pos, mcrfpy.Vector), f"Expected Vector for pos, got {type(pos)}"
|
||||
assert isinstance(size, mcrfpy.Vector), f"Expected Vector for size, got {type(size)}"
|
||||
|
||||
# Sprite should not have get_bounds
|
||||
assert not hasattr(sprite, 'get_bounds'), "get_bounds method should be removed from Sprite"
|
||||
|
||||
print(" Sprite bounds: PASS")
|
||||
|
||||
# Run tests
|
||||
print("=" * 60)
|
||||
print("Testing Issues #185 and #188: Bounds Handling")
|
||||
print("=" * 60)
|
||||
|
||||
try:
|
||||
test_bounds()
|
||||
test_global_bounds()
|
||||
test_get_bounds_removed()
|
||||
test_caption_bounds()
|
||||
test_sprite_bounds()
|
||||
|
||||
print("=" * 60)
|
||||
print("All tests PASSED!")
|
||||
print("=" * 60)
|
||||
sys.exit(0)
|
||||
except AssertionError as e:
|
||||
print(f"FAILED: {e}")
|
||||
sys.exit(1)
|
||||
except Exception as e:
|
||||
print(f"ERROR: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue