diff options
Diffstat (limited to 'src/test_utils.py')
| -rw-r--r-- | src/test_utils.py | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/test_utils.py b/src/test_utils.py deleted file mode 100644 index 1db23b2..0000000 --- a/src/test_utils.py +++ /dev/null @@ -1,93 +0,0 @@ -import random -from dataclasses import dataclass -import tempfile -import sys -import os - -def make_test_file(name: str, table: str) -> str: - return f"""<?xml version="1.0" encoding="utf-8"?> -<circuit> - <version>2</version> - <attributes/> - <visualElements> - <visualElement> - <elementName>Testcase</elementName> - <elementAttributes> - <entry> - <string>Label</string> - <string>{name}</string> - </entry> - <entry> - <string>Testdata</string> - <testData> - <dataString>{table}</dataString> - </testData> - </entry> - </elementAttributes> - <pos x="200" y="200"/> - </visualElement> - </visualElements> - <wires/> - <measurementOrdering/> -</circuit> - """ - -@dataclass -class Param: - name: str - min: int - max: int - -class TestGroup: - def __init__(self, inputs: list[Param], outputs: list[str]): - self.inputs = inputs - self.outputs = outputs - self.cases = [] - - def generate_cases(self, n = 1000): - for _ in range(n): - result = {} - for param in self.inputs: - val = random.randrange(param.min, param.max + 1) - result[param.name] = val - - self.cases.append(result) - - def process(self): - raise NotImplemented() - - def to_table(self) -> str: - names: list[str] = [] - for param in self.inputs: - names.append(param.name) - for output in self.outputs: - names.append(output) - - ret = " ".join(names) - ret += "\n" - - for case in self.cases: - row_vals = [] - for param_name in names: - row_vals.append(str(case[param_name])) - - ret += " ".join(row_vals) - ret += "\n" - - return ret - -def run_test(name: str, table: str): - if len(sys.argv) != 2: - print(f"usage: {sys.argv[0]} <circuit.dig>") - sys.exit(1) - - circuit_path = sys.argv[1] - _, test_path = tempfile.mkstemp(".dig") - - fc = make_test_file(name, table) - with open(test_path, "w") as f: - f.write(fc) - - stream = os.popen(f"make run-single-test circ={circuit_path} tests={test_path}") - output = stream.read() - print(output) |
