Skip to content

Commit

Permalink
Config -> Metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
fushar committed Nov 5, 2016
1 parent cb413f1 commit cc5c072
Show file tree
Hide file tree
Showing 12 changed files with 127 additions and 127 deletions.
8 changes: 4 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ set(SOURCES
include/tcframe/runner.hpp
include/tcframe/runner/Args.hpp
include/tcframe/runner/ArgsParser.hpp
include/tcframe/runner/ConfigParser.hpp
include/tcframe/runner/MetadataParser.hpp
include/tcframe/runner/Runner.hpp
include/tcframe/runner/RunnerLogger.hpp
include/tcframe/runner/RunnerLoggerFactory.hpp
Expand All @@ -81,9 +81,9 @@ set(SOURCES
include/tcframe/spec/core.hpp
include/tcframe/spec/core/BaseTestSpec.hpp
include/tcframe/spec/core/BaseProblemSpec.hpp
include/tcframe/spec/core/Config.hpp
include/tcframe/spec/core/DefaultValues.hpp
include/tcframe/spec/core/Magic.hpp
include/tcframe/spec/core/Metadata.hpp
include/tcframe/spec/core/ProblemConfig.hpp
include/tcframe/spec/io.hpp
include/tcframe/spec/io/GridIOSegment.hpp
Expand Down Expand Up @@ -143,8 +143,8 @@ set(SOURCES
test/tcframe/logger/SimpleLoggerEngineTests.cpp
test/tcframe/os/MockOperatingSystem.hpp
test/tcframe/runner/ArgsParserTests.cpp
test/tcframe/runner/ConfigParserTests.cpp
test/tcframe/runner/MockConfigParser.hpp
test/tcframe/runner/MetadataParserTests.cpp
test/tcframe/runner/MockMetadataParser.hpp
test/tcframe/runner/MockRunnerLogger.hpp
test/tcframe/runner/MockRunnerLoggerFactory.hpp
test/tcframe/runner/RunnerTests.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,19 @@ using std::string;

namespace tcframe {

class ConfigParser {
class MetadataParser {
private:
OperatingSystem* os_;

public:
virtual ~ConfigParser() {}
virtual ~MetadataParser() {}

ConfigParser(OperatingSystem* os)
MetadataParser(OperatingSystem* os)
: os_(os) {}

virtual Config parse(const string& runnerFilename) {
virtual Metadata parse(const string& runnerFilename) {
string slug = getSlug(runnerFilename);
ConfigBuilder config(slug);
MetadataBuilder config(slug);

string configFilename = getConfigFilename(runnerFilename);
istream* configStream = os_->openForReading(configFilename);
Expand Down
34 changes: 17 additions & 17 deletions include/tcframe/runner/Runner.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include "Args.hpp"
#include "ArgsParser.hpp"
#include "ConfigParser.hpp"
#include "MetadataParser.hpp"
#include "RunnerLogger.hpp"
#include "RunnerLoggerFactory.hpp"
#include "tcframe/generator.hpp"
Expand All @@ -27,7 +27,7 @@ class Runner {
LoggerEngine* loggerEngine_;
OperatingSystem* os_;

ConfigParser* configParser_;
MetadataParser* metadataParser_;
RunnerLoggerFactory* runnerLoggerFactory_;
GeneratorFactory* generatorFactory_;
SubmitterFactory* submitterFactory_;
Expand All @@ -37,13 +37,13 @@ class Runner {
BaseTestSpec<TProblemSpec>* testSpec,
LoggerEngine* loggerEngine,
OperatingSystem* os,
ConfigParser* configParser,
MetadataParser* metadataParser,
RunnerLoggerFactory* runnerLoggerFactory,
GeneratorFactory* generatorFactory,
SubmitterFactory* submitterFactory)
: testSpec_(testSpec)
, loggerEngine_(loggerEngine)
, configParser_(configParser)
, metadataParser_(metadataParser)
, os_(os)
, runnerLoggerFactory_(runnerLoggerFactory)
, generatorFactory_(generatorFactory)
Expand All @@ -54,8 +54,8 @@ class Runner {

try {
Args args = parseArgs(argc, argv);
Config config = parseConfig(argv[0]);
Spec spec = buildSpec(config, runnerLogger);
Metadata metadata = parseMetadata(argv[0]);
Spec spec = buildSpec(metadata, runnerLogger);

int result;
if (args.command() == Args::Command::GEN) {
Expand All @@ -80,26 +80,26 @@ class Runner {
}
}

Config parseConfig(const string& runnerPath) {
Metadata parseMetadata(const string& runnerPath) {
try {
return configParser_->parse(runnerPath);
return metadataParser_->parse(runnerPath);
} catch (runtime_error& e) {
cout << e.what() << endl;
throw;
}
}

Spec buildSpec(const Config& config, RunnerLogger* logger) {
Spec buildSpec(const Metadata& metadata, RunnerLogger* logger) {
try {
return testSpec_->buildSpec(config);
return testSpec_->buildSpec(metadata);
} catch (runtime_error& e) {
logger->logSpecificationFailure({e.what()});
throw;
}
}

int generate(const Args& args, const Spec& spec) {
const Config& config = spec.config();
const Metadata& config = spec.metadata();
const ProblemConfig& problemConfig = spec.problemConfig();

GeneratorConfig generatorConfig = GeneratorConfigBuilder()
Expand All @@ -120,27 +120,27 @@ class Runner {
}

int submit(const Args& args, const Spec& spec) {
const Config& config = spec.config();
const Metadata& metadata = spec.metadata();
const ProblemConfig& problemConfig = spec.problemConfig();

SubmitterConfigBuilder configBuilder = SubmitterConfigBuilder()
.setHasMultipleTestCasesCount(problemConfig.multipleTestCasesCount())
.setSlug(config.slug())
.setSlug(metadata.slug())
.setSolutionCommand(args.solution().value_or(DefaultValues::solutionCommand()))
.setTestCasesDir(args.output().value_or(DefaultValues::outputDir()));

if (!args.noTimeLimit()) {
if (args.timeLimit()) {
configBuilder.setTimeLimit(args.timeLimit().value());
} else if (config.timeLimit()) {
configBuilder.setTimeLimit(config.timeLimit().value());
} else if (metadata.timeLimit()) {
configBuilder.setTimeLimit(metadata.timeLimit().value());
}
}
if (!args.noMemoryLimit()) {
if (args.memoryLimit()) {
configBuilder.setMemoryLimit(args.memoryLimit().value());
} else if (config.memoryLimit()) {
configBuilder.setMemoryLimit(config.memoryLimit().value());
} else if (metadata.memoryLimit()) {
configBuilder.setMemoryLimit(metadata.memoryLimit().value());
}
}

Expand Down
10 changes: 5 additions & 5 deletions include/tcframe/spec/Spec.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@ namespace tcframe {

struct Spec {
private:
Config config_;
Metadata metadata_;
ProblemConfig problemConfig_;
IOFormat ioFormat_;
ConstraintSuite constraintSuite_;
TestSuite testSuite_;

public:
Spec(
const Config& config,
const Metadata& metadata,
const ProblemConfig& problemConfig,
const IOFormat& ioFormat,
const ConstraintSuite& constraintSuite,
const TestSuite& testSuite)
: config_(config)
: metadata_(metadata)
, problemConfig_(problemConfig)
, ioFormat_(ioFormat)
, constraintSuite_(constraintSuite)
, testSuite_(testSuite) {}

const Config& config() const {
return config_;
const Metadata& metadata() const {
return metadata_;
}

const ProblemConfig& problemConfig() const {
Expand Down
2 changes: 1 addition & 1 deletion include/tcframe/spec/core.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "tcframe/spec/core/BaseProblemSpec.hpp"
#include "tcframe/spec/core/BaseTestSpec.hpp"
#include "tcframe/spec/core/Config.hpp"
#include "tcframe/spec/core/Metadata.hpp"
#include "tcframe/spec/core/DefaultValues.hpp"
#include "tcframe/spec/core/Magic.hpp"
#include "tcframe/spec/core/ProblemConfig.hpp"
8 changes: 4 additions & 4 deletions include/tcframe/spec/core/BaseTestSpec.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <set>
#include <vector>

#include "Config.hpp"
#include "Metadata.hpp"
#include "DefaultValues.hpp"
#include "tcframe/spec/Spec.hpp"
#include "tcframe/spec/random.hpp"
Expand Down Expand Up @@ -108,12 +108,12 @@ class BaseTestSpec : public TProblemSpec, protected TestSuiteBuilder {
return TestSuiteBuilder::build();
}

virtual Spec buildSpec(const Config& config) {
virtual Spec buildSpec(const Metadata& metadata) {
ProblemConfig problemConfig = TProblemSpec::buildProblemConfig();
IOFormat ioFormat = TProblemSpec::buildIOFormat();
ConstraintSuite constraintSuite = TProblemSpec::buildConstraintSuite();
TestSuite testSuite = buildTestSuite(config.slug());
return Spec(config, problemConfig, ioFormat, constraintSuite, testSuite);
TestSuite testSuite = buildTestSuite(metadata.slug());
return Spec(metadata, problemConfig, ioFormat, constraintSuite, testSuite);
}

protected:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ using std::tie;

namespace tcframe {

struct Config {
friend class ConfigBuilder;
struct Metadata {
friend class MetadataBuilder;

private:
string slug_;
Expand All @@ -33,32 +33,32 @@ struct Config {
return memoryLimit_;
}

bool operator==(const Config& o) const {
bool operator==(const Metadata& o) const {
return tie(slug_, timeLimit_, memoryLimit_) == tie(o.slug_, o.timeLimit_, o.memoryLimit_);
}
};

class ConfigBuilder {
class MetadataBuilder {
private:
Config subject_;
Metadata subject_;

public:
ConfigBuilder(const string& slug) {
MetadataBuilder(const string& slug) {
subject_.slug_ = slug;
}

public:
ConfigBuilder& setTimeLimit(int timeLimit) {
MetadataBuilder& setTimeLimit(int timeLimit) {
subject_.timeLimit_ = optional<int>(timeLimit);
return *this;
}

ConfigBuilder& setMemoryLimit(int memoryLimit) {
MetadataBuilder& setMemoryLimit(int memoryLimit) {
subject_.memoryLimit_ = optional<int>(memoryLimit);
return *this;
}

Config build() {
Metadata build() {
return move(subject_);
}
};
Expand Down
57 changes: 0 additions & 57 deletions test/tcframe/runner/ConfigParserTests.cpp

This file was deleted.

0 comments on commit cc5c072

Please sign in to comment.