Skip to content

Commit

Permalink
Simplify args
Browse files Browse the repository at this point in the history
--slug: remove
--solution-command -> --solution
--tc-dir -> --output

Resolve #83
  • Loading branch information
fushar committed Nov 5, 2016
1 parent 87f7989 commit 3b9f8a3
Show file tree
Hide file tree
Showing 12 changed files with 32 additions and 32 deletions.
4 changes: 2 additions & 2 deletions include/tcframe/generator/Generator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class Generator {
virtual bool generate(const TestSuite& testSuite, const GeneratorConfig& config) {
logger_->logIntroduction();

os_->forceMakeDir(config.testCasesDir());
os_->forceMakeDir(config.outputDir());

bool successful = true;
for (const TestGroup& testGroup : testSuite.testGroups()) {
Expand Down Expand Up @@ -102,7 +102,7 @@ class Generator {

void combine(const TestGroup& testGroup, const GeneratorConfig& config) {
string baseId = TestCaseIdCreator::createBaseId(config.slug(), testGroup.id());
string baseFilename = config.testCasesDir() + "/" + baseId;
string baseFilename = config.outputDir() + "/" + baseId;
os_->combineMultipleTestCases(baseFilename, (int) testGroup.testCases().size());
}
};
Expand Down
16 changes: 8 additions & 8 deletions include/tcframe/generator/GeneratorConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ struct GeneratorConfig {
unsigned seed_;
string slug_;
string solutionCommand_;
string testCasesDir_;
string outputDir_;

public:
int* multipleTestCasesCount() const {
Expand All @@ -40,13 +40,13 @@ struct GeneratorConfig {
return solutionCommand_;
}

const string& testCasesDir() const {
return testCasesDir_;
const string& outputDir() const {
return outputDir_;
}

bool operator==(const GeneratorConfig& o) const {
return tie(multipleTestCasesCount_, seed_, slug_, solutionCommand_, testCasesDir_) ==
tie(o.multipleTestCasesCount_, o.seed_, o.slug_, o.solutionCommand_, o.testCasesDir_);
return tie(multipleTestCasesCount_, seed_, slug_, solutionCommand_, outputDir_) ==
tie(o.multipleTestCasesCount_, o.seed_, o.slug_, o.solutionCommand_, o.outputDir_);
}
};

Expand All @@ -62,7 +62,7 @@ class GeneratorConfigBuilder {
subject_.multipleTestCasesCount_ = nullptr;
subject_.seed_ = DefaultValues::seed();
subject_.solutionCommand_ = DefaultValues::solutionCommand();
subject_.testCasesDir_ = DefaultValues::testCasesDir();
subject_.outputDir_ = DefaultValues::outputDir();
}

GeneratorConfigBuilder& setMultipleTestCasesCount(int* var) {
Expand All @@ -85,8 +85,8 @@ class GeneratorConfigBuilder {
return *this;
}

GeneratorConfigBuilder& setTestCasesDir(string testCasesDir) {
subject_.testCasesDir_ = testCasesDir;
GeneratorConfigBuilder& setOutputDir(string outputDir) {
subject_.outputDir_ = outputDir;
return *this;
}

Expand Down
4 changes: 2 additions & 2 deletions include/tcframe/generator/TestCaseGenerator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ class TestCaseGenerator {
virtual bool generate(const TestCase& testCase, const GeneratorConfig& config) {
logger_->logTestCaseIntroduction(testCase.id());

string inputFilename = config.testCasesDir() + "/" + testCase.id() + ".in";
string outputFilename = config.testCasesDir() + "/" + testCase.id() + ".out";
string inputFilename = config.outputDir() + "/" + testCase.id() + ".in";
string outputFilename = config.outputDir() + "/" + testCase.id() + ".out";

try {
applyInput(testCase);
Expand Down
6 changes: 3 additions & 3 deletions include/tcframe/runner/Args.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ struct Args {
bool noTimeLimit_;
optional<unsigned> seed_;
optional<string> solution_;
optional<string> tcDir_;
optional<string> output_;
optional<int> timeLimit_;

public:
Expand Down Expand Up @@ -57,8 +57,8 @@ struct Args {
return solution_;
}

const optional<string>& tcDir() const {
return tcDir_;
const optional<string>& output() const {
return output_;
}

const optional<int>& timeLimit() const {
Expand Down
4 changes: 2 additions & 2 deletions include/tcframe/runner/ArgsParser.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class ArgsParser {
{ "no-time-limit", no_argument , nullptr, 'c'},
{ "seed", required_argument, nullptr, 'd'},
{ "solution", required_argument, nullptr, 'e'},
{ "tc-dir", required_argument, nullptr, 'f'},
{ "output", required_argument, nullptr, 'f'},
{ "time-limit", required_argument, nullptr, 'g'},
{ 0, 0, 0, 0 }};

Expand Down Expand Up @@ -57,7 +57,7 @@ class ArgsParser {
args.solution_ = optional<string>(optarg);
break;
case 'f':
args.tcDir_ = optional<string>(optarg);
args.output_ = optional<string>(optarg);
break;
case 'g':
args.timeLimit_ = StringUtils::toNumber<int>(optarg);
Expand Down
4 changes: 2 additions & 2 deletions include/tcframe/runner/Runner.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ class Runner {
.setSeed(args.seed().value_or(DefaultValues::seed()))
.setSlug(config.slug())
.setSolutionCommand(args.solution().value_or(DefaultValues::solutionCommand()))
.setTestCasesDir(args.tcDir().value_or(DefaultValues::testCasesDir()))
.setOutputDir(args.output().value_or(DefaultValues::outputDir()))
.build();

auto ioManipulator = new IOManipulator(spec.ioFormat());
Expand All @@ -124,7 +124,7 @@ class Runner {
.setHasMultipleTestCasesCount(problemConfig.multipleTestCasesCount())
.setSlug(config.slug())
.setSolutionCommand(args.solution().value_or(DefaultValues::solutionCommand()))
.setTestCasesDir(args.tcDir().value_or(DefaultValues::testCasesDir()));
.setTestCasesDir(args.output().value_or(DefaultValues::outputDir()));

if (!args.noTimeLimit()) {
if (args.timeLimit()) {
Expand Down
2 changes: 1 addition & 1 deletion include/tcframe/spec/core/DefaultValues.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class DefaultValues {
return "./solution";
}

static string testCasesDir() {
static string outputDir() {
return "tc";
}
};
Expand Down
2 changes: 1 addition & 1 deletion include/tcframe/submitter/SubmitterConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class SubmitterConfigBuilder {
SubmitterConfigBuilder() {
subject_.hasMultipleTestCasesCount_ = false;
subject_.solutionCommand_ = DefaultValues::solutionCommand();
subject_.testCasesDir_ = DefaultValues::testCasesDir();
subject_.testCasesDir_ = DefaultValues::outputDir();
}

SubmitterConfigBuilder& setHasMultipleTestCasesCount(bool hasMultipleTestCasesCount) {
Expand Down
2 changes: 1 addition & 1 deletion test/tcframe/generator/GeneratorTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class GeneratorTests : public Test {
GeneratorConfig config = GeneratorConfigBuilder()
.setSlug("foo")
.setSolutionCommand("python Sol.py")
.setTestCasesDir("dir")
.setOutputDir("dir")
.build();

GeneratorConfig multipleTestCasesConfig = GeneratorConfigBuilder(config)
Expand Down
2 changes: 1 addition & 1 deletion test/tcframe/generator/TestCaseGeneratorTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class TestCaseGeneratorTests : public Test {
GeneratorConfig config = GeneratorConfigBuilder()
.setSlug("foo")
.setSolutionCommand("python Sol.py")
.setTestCasesDir("dir")
.setOutputDir("dir")
.build();
ostringstream* outForInput = new ostringstream();
ostringstream* outForOutput = new ostringstream();
Expand Down
8 changes: 4 additions & 4 deletions test/tcframe/runner/ArgsParserTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ TEST_F(ArgsParserTests, Parsing_AllOptions) {
(char*) "--memory-limit=128",
(char*) "--seed=42",
(char*) "--solution=python Sol.py",
(char*) "--tc-dir=my/testdata",
(char*) "--output=my/testdata",
(char*) "--time-limit=3",
nullptr};
int argc = sizeof(argv) / sizeof(char*) - 1;
Expand All @@ -27,7 +27,7 @@ TEST_F(ArgsParserTests, Parsing_AllOptions) {
EXPECT_THAT(args.memoryLimit(), Eq(optional<int>(128)));
EXPECT_THAT(args.seed(), Eq(optional<unsigned>(42)));
EXPECT_THAT(args.solution(), Eq(optional<string>("python Sol.py")));
EXPECT_THAT(args.tcDir(), Eq(optional<string>("my/testdata")));
EXPECT_THAT(args.output(), Eq(optional<string>("my/testdata")));
EXPECT_THAT(args.timeLimit(), Eq(optional<int>(3)));
}

Expand All @@ -37,15 +37,15 @@ TEST_F(ArgsParserTests, Parsing_SomeOptions) {
(char*) "--no-memory-limit",
(char*) "--no-time-limit",
(char*) "--seed=42",
(char*) "--tc-dir=my/testdata",
(char*) "--output=my/testdata",
nullptr};
int argc = sizeof(argv) / sizeof(char*) - 1;

Args args = ArgsParser::parse(argc, argv);
EXPECT_TRUE(args.noMemoryLimit());
EXPECT_TRUE(args.noTimeLimit());
EXPECT_THAT(args.solution(), Eq(optional<string>()));
EXPECT_THAT(args.tcDir(), Eq(optional<string>("my/testdata")));
EXPECT_THAT(args.output(), Eq(optional<string>("my/testdata")));
EXPECT_THAT(args.seed(), Eq(optional<unsigned>(42)));
}

Expand Down
10 changes: 5 additions & 5 deletions test/tcframe/runner/RunnerTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ TEST_F(RunnerTests, Run_Generation_UseConfigOptions) {
.setSlug("slug")
.setMultipleTestCasesCount(&T)
.setSolutionCommand("./solution")
.setTestCasesDir("tc")
.setOutputDir("tc")
.build()));

runner.run(argc, argv);
Expand All @@ -119,14 +119,14 @@ TEST_F(RunnerTests, Run_Generation_UseArgsOptions) {
.setSlug("slug")
.setMultipleTestCasesCount(&T)
.setSolutionCommand("\"java Solution\"")
.setTestCasesDir("testdata")
.setOutputDir("testdata")
.build()));

runner.run(4, new char*[5]{
(char*) "./slug",
(char*) "--seed=42",
(char*) "--solution=\"java Solution\"",
(char*) "--tc-dir=testdata",
(char*) "--output=testdata",
nullptr});
}

Expand Down Expand Up @@ -187,7 +187,7 @@ TEST_F(RunnerTests, Run_Submission_UseArgsOptions) {
(char*) "./slug",
(char*) "submit",
(char*) "--solution=\"java Solution\"",
(char*) "--tc-dir=testdata",
(char*) "--output=testdata",
(char*) "--time-limit=4",
(char*) "--memory-limit=256",
nullptr});
Expand All @@ -205,7 +205,7 @@ TEST_F(RunnerTests, Run_Submission_UseArgsOptions_NoLimits) {
(char*) "./slug",
(char*) "submit",
(char*) "--solution=\"java Solution\"",
(char*) "--tc-dir=testdata",
(char*) "--output=testdata",
(char*) "--no-time-limit",
(char*) "--no-memory-limit",
nullptr});
Expand Down

0 comments on commit 3b9f8a3

Please sign in to comment.