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.
|
||||
"""
|
||||
|
||||
from .general_tests import GeneralTestGenerator
|
||||
from .integer_tests import IntegerTestGenerator
|
||||
from .float_tests import FloatTestGenerator
|
||||
from .base_tests import BaseTestGenerator
|
||||
|
||||
if __name__ == "__main__":
|
||||
import yaml
|
||||
|
||||
# Generate tests
|
||||
tests = []
|
||||
tests += GeneralTestGenerator.generate_tests()
|
||||
tests += IntegerTestGenerator.generate_tests()
|
||||
tests += FloatTestGenerator.generate_tests()
|
||||
tests = BaseTestGenerator.run_all_generators()
|
||||
# tests = []
|
||||
# tests += GeneralTestGenerator.generate_tests()
|
||||
# tests += IntegerTestGenerator.generate_tests()
|
||||
# tests += FloatTestGenerator.generate_tests()
|
||||
|
||||
# Print summary
|
||||
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 dataclasses import dataclass, asdict
|
||||
|
||||
|
|
@ -52,6 +52,11 @@ class BaseTestGenerator(ABC):
|
|||
test creation, operation building, and error handling.
|
||||
"""
|
||||
|
||||
__generators: "ClassVar[Set[Type[BaseTestGenerator]]]" = set()
|
||||
|
||||
def __init_subclass__(cls):
|
||||
BaseTestGenerator.__generators.add(cls)
|
||||
|
||||
def __init__(self):
|
||||
"""Initialize the test generator with an empty test list."""
|
||||
self.tests: List[Dict[str, Any]] = []
|
||||
|
|
@ -259,6 +264,13 @@ class BaseTestGenerator(ABC):
|
|||
gen.print_statistics()
|
||||
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
|
||||
# =========================================================================
|
||||
|
|
|
|||
Loading…
Reference in New Issue