Closed thorehusfeldt closed 4 months ago
Do you need specific input from me here?
Generally I haven't used this so don't have many opinions on how testdata.yaml
behaves for users.
From the code side, I see that class Testcase
already contains self.testdata_yaml
so that shouldn't be a problem but indeed we should write out in detail what is the expected behaviour of input/answer/output validators with these additional flags present.
I’ll call for help when I need. I assigned myself to this task for now, just to signal that nobody else should spend clock cycles on it.
Solved by #355
This is a necessary step on the roadmap to supporting
type: scoring
and implementing the expecations framework.testdata.yaml
is a file that can exist in the subdirectories ofdata
and modifies input and output validators as well as the rules for scoring aggregation. Two observations:testdata.yaml
plays little to no role in BAPC traditions, and does not have a lot of attention from BAPCtoolstestdata.yaml
affect a large part of BACPtools, including generation, validation, and running.Roadmap:
test/problems
that uses all kinds of weird details (inheriting for two different input validators, for instance.) This can be apass/fail
-problem. See what already works.generate.py
, this may be minimal – it’s just a file to be written. However, the CUE schema needs to have a working#testdata_settings
, and the JSON schema is probably also either trivial or outdated.validate.py
. Input validation (I think) works; output and in particular answer validation is a long shot.run.py
and probablytestcase.py
.The main issue I’m worried about is that answer validators ought to be run with the flags pertaining to output validation of the given test case. But BAPCtools stores flags per validators. This is great for input validation, but not for answer validation. So I assume this needs a more general data structure.
Once all of that it is done, we can proceed to problems with
type: scoring
(which also need to accesstestdata.yaml
, but the inheritance rules are simpler.)