Enhance BaseTestGenerator with generator registration and test execution methods
This commit is contained in:
parent
375c3f2422
commit
25d2202ebd
|
|
@ -0,0 +1,11 @@
|
||||||
|
from .base_tests import BaseTestGenerator
|
||||||
|
from .general_tests import GeneralTestGenerator
|
||||||
|
from .integer_tests import IntegerTestGenerator
|
||||||
|
from .float_tests import FloatTestGenerator
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
"BaseTestGenerator",
|
||||||
|
"GeneralTestGenerator",
|
||||||
|
"IntegerTestGenerator",
|
||||||
|
"FloatTestGenerator",
|
||||||
|
]
|
||||||
|
|
@ -3,18 +3,17 @@ Test case generator for integer literals in the Stack Language.
|
||||||
Generates comprehensive test cases for all integer types and bases.
|
Generates comprehensive test cases for all integer types and bases.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from .general_tests import GeneralTestGenerator
|
from .base_tests import BaseTestGenerator
|
||||||
from .integer_tests import IntegerTestGenerator
|
|
||||||
from .float_tests import FloatTestGenerator
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
# Generate tests
|
# Generate tests
|
||||||
tests = []
|
tests = BaseTestGenerator.run_all_generators()
|
||||||
tests += GeneralTestGenerator.generate_tests()
|
# tests = []
|
||||||
tests += IntegerTestGenerator.generate_tests()
|
# tests += GeneralTestGenerator.generate_tests()
|
||||||
tests += FloatTestGenerator.generate_tests()
|
# tests += IntegerTestGenerator.generate_tests()
|
||||||
|
# tests += FloatTestGenerator.generate_tests()
|
||||||
|
|
||||||
# Print summary
|
# Print summary
|
||||||
print(f"Generated {len(tests)} test cases")
|
print(f"Generated {len(tests)} test cases")
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from typing import List, Dict, Any, Optional
|
from typing import ClassVar, List, Dict, Any, Optional, Set, Type
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from dataclasses import dataclass, asdict
|
from dataclasses import dataclass, asdict
|
||||||
|
|
||||||
|
|
@ -52,6 +52,11 @@ class BaseTestGenerator(ABC):
|
||||||
test creation, operation building, and error handling.
|
test creation, operation building, and error handling.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
__generators: "ClassVar[Set[Type[BaseTestGenerator]]]" = set()
|
||||||
|
|
||||||
|
def __init_subclass__(cls):
|
||||||
|
BaseTestGenerator.__generators.add(cls)
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Initialize the test generator with an empty test list."""
|
"""Initialize the test generator with an empty test list."""
|
||||||
self.tests: List[Dict[str, Any]] = []
|
self.tests: List[Dict[str, Any]] = []
|
||||||
|
|
@ -259,6 +264,13 @@ class BaseTestGenerator(ABC):
|
||||||
gen.print_statistics()
|
gen.print_statistics()
|
||||||
return tests
|
return tests
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def run_all_generators(cls) -> List[Dict[str, Any]]:
|
||||||
|
tests = []
|
||||||
|
for sub_cls in cls.__generators:
|
||||||
|
tests += sub_cls.generate_tests()
|
||||||
|
return tests
|
||||||
|
|
||||||
# =========================================================================
|
# =========================================================================
|
||||||
# Test Organization Helpers
|
# Test Organization Helpers
|
||||||
# =========================================================================
|
# =========================================================================
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue