def test_load_from_json(self): d = { "id": 88042, "creationTimeSeconds": 1387381320, "hacker": { "contestId": 374, "members": [{ "handle": "ocozalp" }], "participantType": "CONTESTANT", "ghost": False, "room": 24, "startTimeSeconds": 1387380600 }, "defender": { "contestId": 374, "members": [{ "handle": "h1me" }], "participantType": "CONTESTANT", "ghost": False, "room": 24, "startTimeSeconds": 1387380600 }, "verdict": "HACK_SUCCESSFUL", "problem": { "contestId": 374, "index": "A", "name": "Inna and Pink Pony", "type": "PROGRAMMING", "points": 500.0, "tags": ["greedy", "implementation"] }, "test": "1 5 1 3 1 1\r\n\n", "judgeProtocol": { "manual": "true", "protocol": "Solution verdict: \nWRONG_ANSWER\n\nChecker: \nwrong answer 1st words differ - " "expected: \u0027Poor\u0027, found: \u00272\u0027\r\n\n\nInput: \n1 5 1 3 1 1\r\n\n\n" "Output: \n2\r\n\n\nAnswer: \nPoor Inna and pony!\r\n\n\nTime: \n62\n\nMemory: \n0\n", "verdict": "Successful hacking attempt" } } j = json.dumps(d) self.hack.load_from_json(j) self.assertEqual(88042, self.hack.id) self.assertEqual(1387381320, self.hack.creation_time) self.assertEqual(Party(d['hacker']), self.hack.hacker) self.assertEqual(Party(d['defender']), self.hack.defender) self.assertEqual(HackVerdictType.hack_successful, self.hack.verdict) self.assertEqual(Problem(d['problem']), self.hack.problem) self.assertEqual("1 5 1 3 1 1\r\n\n", self.hack.test) self.assertEqual(JudgeProtocol(d['judgeProtocol']), self.hack.judge_protocol)
def test_load_from_json(self): d = { "id": 7268482, "contestId": 452, "creationTimeSeconds": 1406487265, "relativeTimeSeconds": 6865, "problem": { "contestId": 452, "index": "E", "name": "Three strings", "type": "PROGRAMMING", "points": 2500.0, "tags": [ "data structures", "dsu", "string suffix structures", "strings" ] }, "author": { "contestId": 452, "members": [{ "handle": "Fefer_Ivan" }], "participantType": "CONTESTANT", "ghost": False, "room": 86, "startTimeSeconds": 1406480400 }, "programmingLanguage": "GNU C++0x", "verdict": "OK", "testset": "TESTS", "passedTestCount": 67, "timeConsumedMillis": 343, "memoryConsumedBytes": 34816000 } json = str(d).replace('False', 'false').replace("'", '"') self.submission.load_from_json(json) self.assertEqual(7268482, self.submission.id) self.assertEqual(452, self.submission.contest_id) self.assertEqual(1406487265, self.submission.creation_time) self.assertEqual(6865, self.submission.relative_time) self.assertEqual(Problem(d['problem']), self.submission.problem) self.assertEqual(Party(d['author']), self.submission.author) self.assertEqual("GNU C++0x", self.submission.programming_language) self.assertEqual(VerdictType.ok, self.submission.verdict) self.assertEqual(TestsetType.tests, self.submission.testset) self.assertEqual(67, self.submission.passed_test_count) self.assertEqual(343, self.submission.time_consumed) self.assertEqual(34816000, self.submission.memory_consumed)
def test_load_only_required_from_json(self): """ Required fields are: id, creationTimeSeconds, hacker, defender, problem """ d = { "id": 88042, "creationTimeSeconds": 1387381320, "hacker": { "contestId": 374, "members": [{ "handle": "ocozalp" }], "participantType": "CONTESTANT", "ghost": False, "room": 24, "startTimeSeconds": 1387380600 }, "defender": { "contestId": 374, "members": [{ "handle": "h1me" }], "participantType": "CONTESTANT", "ghost": False, "room": 24, "startTimeSeconds": 1387380600 }, "problem": { "contestId": 374, "index": "A", "name": "Inna and Pink Pony", "type": "PROGRAMMING", "points": 500.0, "tags": ["greedy", "implementation"] } } j = json.dumps(d) self.hack.load_from_json(j) self.assertEqual(88042, self.hack.id) self.assertEqual(1387381320, self.hack.creation_time) self.assertEqual(Party(d['hacker']), self.hack.hacker) self.assertEqual(Party(d['defender']), self.hack.defender) self.assertEqual(Problem(d['problem']), self.hack.problem) self.assertIsNone(self.hack.verdict) self.assertIsNone(self.hack.test) self.assertIsNone(self.hack.judge_protocol)
def test_load_only_required_from_dict(self): """ Required fields are: id contestId creationTimeSeconds relativeTimeSeconds problem author programmingLanguage testset passedTestCount timeConsumedMillis memoryConsumedBytes """ d = { "id": 7268482, "contestId": 452, "creationTimeSeconds": 1406487265, "relativeTimeSeconds": 6865, "problem": { "contestId": 452, "index": "E", "name": "Three strings", "type": "PROGRAMMING", "points": 2500.0, "tags": [ "data structures", "dsu", "string suffix structures", "strings" ] }, "author": { "contestId": 452, "members": [{ "handle": "Fefer_Ivan" }], "participantType": "CONTESTANT", "ghost": False, "room": 86, "startTimeSeconds": 1406480400 }, "programmingLanguage": "GNU C++0x", "testset": "TESTS", "passedTestCount": 67, "timeConsumedMillis": 343, "memoryConsumedBytes": 34816000 } self.submission.load_from_dict(d) self.assertEqual(7268482, self.submission.id) self.assertEqual(452, self.submission.contest_id) self.assertEqual(1406487265, self.submission.creation_time) self.assertEqual(6865, self.submission.relative_time) self.assertEqual(Problem(d['problem']), self.submission.problem) self.assertEqual(Party(d['author']), self.submission.author) self.assertEqual("GNU C++0x", self.submission.programming_language) self.assertEqual(TestsetType.tests, self.submission.testset) self.assertEqual(67, self.submission.passed_test_count) self.assertEqual(343, self.submission.time_consumed) self.assertEqual(34816000, self.submission.memory_consumed) self.assertIsNone(self.submission.verdict)
def setUp(self): self.problem = Problem()
class ProblemTests(unittest.TestCase): def setUp(self): self.problem = Problem() def test_load_from_dict(self): d = { "contestId": 374, "index": "A", "name": "Inna and Pink Pony", "type": "PROGRAMMING", "points": 500.0, "tags": ["greedy", "implementation"] } self.problem.load_from_dict(d) self.assertEqual(374, self.problem.contest_id) self.assertEqual('A', self.problem.index) self.assertEqual('Inna and Pink Pony', self.problem.name) self.assertEqual(ProblemType.programming, self.problem.type) self.assertEqual(500.0, self.problem.points) self.assertEqual(["greedy", "implementation"], self.problem.tags) def load_only_required_from_dict(self): d = { "contestId": 374, "index": "A", "name": "Inna and Pink Pony", "type": "PROGRAMMING", "tags": ["greedy", "implementation"] } self.problem.load_from_dict(d) self.assertEqual(374, self.problem.contest_id) self.assertEqual('A', self.problem.index) self.assertEqual('Inna and Pink Pony', self.problem.name) self.assertEqual(ProblemType.programming, self.problem.type) self.assertEqual(["greedy", "implementation"], self.problem.tags) self.assertIsNone(self.problem.points) def test_load_from_json(self): json = '''{ "contestId": 374, "index": "A", "name": "Inna and Pink Pony", "type": "PROGRAMMING", "points": 500.0, "tags": ["greedy","implementation"] }''' self.problem.load_from_json(json) self.assertEqual(374, self.problem.contest_id) self.assertEqual('A', self.problem.index) self.assertEqual('Inna and Pink Pony', self.problem.name) self.assertEqual(ProblemType.programming, self.problem.type) self.assertEqual(500.0, self.problem.points) self.assertEqual(["greedy", "implementation"], self.problem.tags) def load_only_required_from_json(self): json = '''{ "contestId": 374, "index": "A", "name": "Inna and Pink Pony", "type": "PROGRAMMING", "tags": ["greedy","implementation"] }''' self.problem.load_from_json(json) self.assertEqual(374, self.problem.contest_id) self.assertEqual('A', self.problem.index) self.assertEqual('Inna and Pink Pony', self.problem.name) self.assertEqual(ProblemType.programming, self.problem.type) self.assertEqual(["greedy", "implementation"], self.problem.tags) self.assertIsNone(self.problem.points)