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_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_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 load_only_required_from_dict(self): """ Required fields are: party rank points penalty successfulHackCount unsuccessfulHackCount problemResults """ d = { "party": { "contestId": 374, "members": [{ "handle": "Deception" }], "participantType": "CONTESTANT", "ghost": False, "room": 46, "startTimeSeconds": 1387380600 }, "rank": 1, "points": 4902.0, "penalty": 0, "successfulHackCount": 11, "unsuccessfulHackCount": 1, "problemResults": [{ "points": 312.0, "rejectedAttemptCount": 1, "type": "FINAL", "bestSubmissionTimeSeconds": 4174 }, { "points": 596.0, "rejectedAttemptCount": 2, "type": "FINAL", "bestSubmissionTimeSeconds": 4583 }, { "points": 1128.0, "rejectedAttemptCount": 0, "type": "FINAL", "bestSubmissionTimeSeconds": 3751 }, { "points": 1816.0, "rejectedAttemptCount": 0, "type": "FINAL", "bestSubmissionTimeSeconds": 1430 }, { "points": 0.0, "rejectedAttemptCount": 0, "type": "FINAL" }] } self.row.load_from_dict(d) self.assertEqual(Party(d['party']), self.row.party) self.assertEqual(1, self.row.rank) self.assertEqual(4902.0, self.row.points) self.assertEqual(0, self.row.penalty) self.assertEqual(11, self.row.successful_hack_count) self.assertEqual(1, self.row.unsuccessful_hack_count) self.assertEqual(list(map(ProblemResult, d['problemResults'])), self.row.problem_results) self.assertIsNone(self.row.last_submission_time)
def test_load_from_json(self): d = { "party": { "contestId": 374, "members": [{ "handle": "Deception" }], "participantType": "CONTESTANT", "ghost": False, "room": 46, "startTimeSeconds": 1387380600 }, "rank": 1, "points": 4902.0, "penalty": 0, "successfulHackCount": 11, "unsuccessfulHackCount": 1, "problemResults": [{ "points": 312.0, "rejectedAttemptCount": 1, "type": "FINAL", "bestSubmissionTimeSeconds": 4174 }, { "points": 596.0, "rejectedAttemptCount": 2, "type": "FINAL", "bestSubmissionTimeSeconds": 4583 }, { "points": 1128.0, "rejectedAttemptCount": 0, "type": "FINAL", "bestSubmissionTimeSeconds": 3751 }, { "points": 1816.0, "rejectedAttemptCount": 0, "type": "FINAL", "bestSubmissionTimeSeconds": 1430 }, { "points": 0.0, "rejectedAttemptCount": 0, "type": "FINAL" }], "lastSubmissionTimeSeconds": 424242 } json = str(d).replace('False', 'false').replace("'", '"') self.row.load_from_json(json) self.assertEqual(Party(d['party']), self.row.party) self.assertEqual(1, self.row.rank) self.assertEqual(4902.0, self.row.points) self.assertEqual(0, self.row.penalty) self.assertEqual(11, self.row.successful_hack_count) self.assertEqual(1, self.row.unsuccessful_hack_count) self.assertEqual(list(map(ProblemResult, d['problemResults'])), self.row.problem_results) self.assertEqual(424242, self.row.last_submission_time)
def setUp(self): self.party = Party()
class PartyTests(unittest.TestCase): def setUp(self): self.party = Party() def test_load_from_dict(self): d = { "contestId": 374, "members": [{ "handle": "ocozalp" }, { "handle": "awesomeHandle" }], "participantType": "CONTESTANT", "teamId": 42, "teamName": "The best team. Ever", "ghost": False, "room": 24, "startTimeSeconds": 1387380600 } self.party.load_from_dict(d) self.assertEqual(374, self.party.contest_id) self.assertEqual([ Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"}) ], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(42, self.party.team_id) self.assertEqual("The best team. Ever", self.party.team_name) self.assertEqual(False, self.party.ghost) self.assertEqual(24, self.party.room) self.assertEqual(1387380600, self.party.start_time) def test_load_only_required_from_dict(self): """ Required fields are: contestId, members, participantType, ghost """ d = { "contestId": 374, "members": [{ "handle": "ocozalp" }, { "handle": "awesomeHandle" }], "participantType": "CONTESTANT", "ghost": False } self.party.load_from_dict(d) self.assertEqual(374, self.party.contest_id) self.assertEqual([ Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"}) ], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(False, self.party.ghost) self.assertIsNone(self.party.team_id) self.assertIsNone(self.party.team_name) self.assertIsNone(self.party.room) self.assertIsNone(self.party.start_time) def test_load_from_json(self): json = '''{ "contestId": 374, "members": [{"handle": "ocozalp"}, {"handle": "awesomeHandle"}], "participantType": "CONTESTANT", "teamId": 42, "teamName": "The best team. Ever", "ghost": false, "room": 24, "startTimeSeconds": 1387380600 }''' self.party.load_from_json(json) self.assertEqual(374, self.party.contest_id) self.assertEqual([ Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"}) ], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(42, self.party.team_id) self.assertEqual("The best team. Ever", self.party.team_name) self.assertEqual(False, self.party.ghost) self.assertEqual(24, self.party.room) self.assertEqual(1387380600, self.party.start_time) def test_load_only_required_from_json(self): """ Required fields are: contestId, members, participantType, ghost """ json = '''{ "contestId": 374, "members": [{"handle": "ocozalp"}, {"handle": "awesomeHandle"}], "participantType": "CONTESTANT", "ghost": false }''' self.party.load_from_json(json) self.assertEqual(374, self.party.contest_id) self.assertEqual([ Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"}) ], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(False, self.party.ghost) self.assertIsNone(self.party.team_id) self.assertIsNone(self.party.team_name) self.assertIsNone(self.party.room) self.assertIsNone(self.party.start_time)
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)
class PartyTests(unittest.TestCase): def setUp(self): self.party = Party() def test_load_from_dict(self): d = { "contestId": 374, "members": [{"handle": "ocozalp"}, {"handle": "awesomeHandle"}], "participantType": "CONTESTANT", "teamId": 42, "teamName": "The best team. Ever", "ghost": False, "room": 24, "startTimeSeconds": 1387380600 } self.party.load_from_dict(d) self.assertEqual(374, self.party.contest_id) self.assertEqual([Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"})], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(42, self.party.team_id) self.assertEqual("The best team. Ever", self.party.team_name) self.assertEqual(False, self.party.ghost) self.assertEqual(24, self.party.room) self.assertEqual(1387380600, self.party.start_time) def test_load_only_required_from_dict(self): """ Required fields are: contestId, members, participantType, ghost """ d = { "contestId": 374, "members": [{"handle": "ocozalp"}, {"handle": "awesomeHandle"}], "participantType": "CONTESTANT", "ghost": False } self.party.load_from_dict(d) self.assertEqual(374, self.party.contest_id) self.assertEqual([Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"})], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(False, self.party.ghost) self.assertIsNone(self.party.team_id) self.assertIsNone(self.party.team_name) self.assertIsNone(self.party.room) self.assertIsNone(self.party.start_time) def test_load_from_json(self): json = '''{ "contestId": 374, "members": [{"handle": "ocozalp"}, {"handle": "awesomeHandle"}], "participantType": "CONTESTANT", "teamId": 42, "teamName": "The best team. Ever", "ghost": false, "room": 24, "startTimeSeconds": 1387380600 }''' self.party.load_from_json(json) self.assertEqual(374, self.party.contest_id) self.assertEqual([Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"})], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(42, self.party.team_id) self.assertEqual("The best team. Ever", self.party.team_name) self.assertEqual(False, self.party.ghost) self.assertEqual(24, self.party.room) self.assertEqual(1387380600, self.party.start_time) def test_load_only_required_from_json(self): """ Required fields are: contestId, members, participantType, ghost """ json = '''{ "contestId": 374, "members": [{"handle": "ocozalp"}, {"handle": "awesomeHandle"}], "participantType": "CONTESTANT", "ghost": false }''' self.party.load_from_json(json) self.assertEqual(374, self.party.contest_id) self.assertEqual([Member({"handle": "ocozalp"}), Member({"handle": "awesomeHandle"})], self.party.members) self.assertEqual(ParticipantType.contestant, self.party.participant_type) self.assertEqual(False, self.party.ghost) self.assertIsNone(self.party.team_id) self.assertIsNone(self.party.team_name) self.assertIsNone(self.party.room) self.assertIsNone(self.party.start_time)