Skip to content

Commit 217eb03

Browse files
committed
[visualize] Rename InputVisualizer to TestCaseVisualizer
1 parent df16365 commit 217eb03

File tree

12 files changed

+27
-25
lines changed

12 files changed

+27
-25
lines changed

bin/export.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from latex import PdfType
1414
from problem import Problem
1515
from validate import InputValidator, AnswerValidator, OutputValidator
16-
from visualize import InputVisualizer, OutputVisualizer
16+
from visualize import TestCaseVisualizer, OutputVisualizer
1717

1818

1919
def select_languages(problems: list[Problem]) -> list[str]:
@@ -126,7 +126,7 @@ def build_problem_zip(problem: Problem, output: Path) -> bool:
126126
("submissions/accepted/**/*", True),
127127
("submissions/*/**/*", False),
128128
("attachments/**/*", problem.interactive or problem.multi_pass),
129-
(f"{InputVisualizer.source_dir}/**/*", False),
129+
(f"{TestCaseVisualizer.source_dir}/**/*", False),
130130
(f"{OutputVisualizer.source_dir}/**/*", False),
131131
]
132132

@@ -215,7 +215,7 @@ def add_testcase(in_file: Path) -> None:
215215
f"{OutputValidator.source_dir}/**/*",
216216
# "statement/*", "solution/*", "problem_slide/*", use \constant{} commands
217217
# "submissions/*/**/*", removed support?
218-
f"{InputVisualizer.source_dir}/**/*",
218+
f"{TestCaseVisualizer.source_dir}/**/*",
219219
f"{OutputVisualizer.source_dir}/**/*",
220220
]
221221
for pattern in constants_supported:

bin/generate.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ def use_feedback_image(feedbackdir: Path, source: str) -> None:
10261026
return
10271027

10281028
visualizer: Optional[visualize.AnyVisualizer] = problem.visualizer(
1029-
visualize.InputVisualizer
1029+
visualize.TestCaseVisualizer
10301030
)
10311031
output_visualizer = problem.visualizer(visualize.OutputVisualizer)
10321032
if output_visualizer is not None:
@@ -1055,7 +1055,7 @@ def use_feedback_image(feedbackdir: Path, source: str) -> None:
10551055
for ext in config.KNOWN_VISUALIZER_EXTENSIONS:
10561056
in_path.with_suffix(ext).unlink(True)
10571057

1058-
if isinstance(visualizer, visualize.InputVisualizer):
1058+
if isinstance(visualizer, visualize.TestCaseVisualizer):
10591059
result = visualizer.run(in_path, ans_path, cwd, visualizer_args)
10601060
else:
10611061
feedbackcopy = in_path.with_suffix(".feedbackcopy")
@@ -1933,7 +1933,7 @@ def build_program(p):
19331933
build_programs(program.Generator, generators_used)
19341934
build_programs(run.Submission, solutions_used)
19351935
if build_visualizers:
1936-
self.problem.visualizer(visualize.InputVisualizer)
1936+
self.problem.visualizer(visualize.TestCaseVisualizer)
19371937
self.problem.visualizer(visualize.OutputVisualizer)
19381938

19391939
self.problem.validators(validate.InputValidator)

bin/problem.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ def _parse_testdata_yaml(p, path, bar):
472472
case (
473473
validate.OutputValidator.args_key
474474
| validate.AnswerValidator.args_key
475-
| visualize.InputVisualizer.args_key
475+
| visualize.TestCaseVisualizer.args_key
476476
| visualize.OutputVisualizer.args_key
477477
):
478478
if not isinstance(flags[k], list):
@@ -544,7 +544,7 @@ def get_testdata_yaml(
544544
validate.InputValidator.args_key,
545545
validate.OutputValidator.args_key,
546546
validate.AnswerValidator.args_key,
547-
visualize.InputVisualizer.args_key,
547+
visualize.TestCaseVisualizer.args_key,
548548
visualize.OutputVisualizer.args_key,
549549
]
550550
if key not in known_args_keys:
@@ -891,8 +891,8 @@ def build_program(p):
891891

892892
@overload
893893
def visualizer(
894-
problem, cls: type[visualize.InputVisualizer]
895-
) -> Optional[visualize.InputVisualizer]: ...
894+
problem, cls: type[visualize.TestCaseVisualizer]
895+
) -> Optional[visualize.TestCaseVisualizer]: ...
896896
@overload
897897
def visualizer(
898898
problem, cls: type[visualize.OutputVisualizer]

bin/upgrade.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def upgrade_generators_yaml(problem_path: Path, bar: ProgressBar) -> None:
151151

152152
if "visualizer" in yaml_data:
153153
warn(
154-
"Cannot automatically upgrade 'visualizer'.\n - move visualizer to 'input_visualizer/'\n - first argument is the in_file\n - second argument is the ans_file"
154+
"Cannot automatically upgrade 'visualizer'.\n - move visualizer to 'test_case_visualizer/'\n - first argument is the in_file\n - second argument is the ans_file"
155155
)
156156

157157
if "data" in yaml_data and isinstance(yaml_data["data"], dict):

bin/visualize.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,25 @@
99
from problem import Problem
1010

1111

12-
class InputVisualizer(program.Program):
12+
class TestCaseVisualizer(program.Program):
1313
"""
14-
Visualizes a testcase, called as:
14+
Visualizes a test case, called as:
1515
1616
./visualizer input answer [args]
1717
1818
"""
1919

20-
visualizer_type: Final[str] = "input"
20+
visualizer_type: Final[str] = "test case"
2121

22-
source_dir: Final[str] = "input_visualizer"
22+
source_dir: Final[str] = "test_case_visualizer"
2323

24-
args_key: Final[str] = "input_visualizer_args"
24+
args_key: Final[str] = "test_case_visualizer_args"
2525

2626
def __init__(self, problem: "Problem", path: Path, **kwargs: Any):
2727
super().__init__(
2828
problem,
2929
path,
30-
InputVisualizer.source_dir,
30+
TestCaseVisualizer.source_dir,
3131
limits={"timeout": problem.limits.visualizer_time},
3232
substitute_constants=True,
3333
**kwargs,
@@ -37,7 +37,9 @@ def __init__(self, problem: "Problem", path: Path, **kwargs: Any):
3737
def run(
3838
self, in_path: Path, ans_path: Path, cwd: Path, args: Optional[list[str]] = None
3939
) -> ExecResult:
40-
assert self.run_command is not None, "Input Visualizer should be built before running it"
40+
assert self.run_command is not None, (
41+
"Test Case Visualizer should be built before running it"
42+
)
4143

4244
return self._exec_command(
4345
self.run_command + [in_path, ans_path] + (args or []),
@@ -92,4 +94,4 @@ def run(
9294
return self._exec_command(command, cwd=cwd)
9395

9496

95-
AnyVisualizer = InputVisualizer | OutputVisualizer
97+
AnyVisualizer = TestCaseVisualizer | OutputVisualizer

skel/problem/input_visualizer/readme.md

-2
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This test case visualizer is intended for use with BAPCtools' `bt generate`.
2+
The visualizer should be invoked as `./visualizer <input_file_path> <answer_file_path> <...test_case_visualizer_args>` and should write a `testcase.<ext>` file.

support/schemas/generators_yaml_schema.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,12 @@
9191
},
9292
"description": "Defines arguments passed to the output validator for the test case/group."
9393
},
94-
"input_visualizer_args": {
94+
"test_case_visualizer_args": {
9595
"type": "array",
9696
"items": {
9797
"type": "string"
9898
},
99-
"description": "Defines arguments passed to the input visualizer for the test case/group."
99+
"description": "Defines arguments passed to the test case visualizer for the test case/group."
100100
},
101101
"output_visualizer_args": {
102102
"type": "array",
@@ -113,7 +113,7 @@
113113
"output_validator_flags": {
114114
"type": "string",
115115
"deprecated": true,
116-
"description": "With 'problem_format_version: 2023-07-draft' in problem.yaml, use input_validator_args instead."
116+
"description": "With 'problem_format_version: 2023-07-draft' in problem.yaml, use output_validator_args instead."
117117
},
118118
"accept_score": {
119119
"type": "string"

support/schemas/problemformat.cue

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ let filename = "[A-Za-z0-9][A-Za-z0-9_.-]{0,253}[A-Za-z0-9]"
2525
#testdata_settings: {
2626
input_validator_args?: *[] | [string] | {[string]: [string]}
2727
output_validator_args?: *[] | [string]
28-
input_visualizer_args?: *[] | [string]
28+
test_case_visualizer_args?: *[] | [string]
2929
output_visualizer_args?: *[] | [string]
3030
grading?: {
3131
score?: >0

0 commit comments

Comments
 (0)