Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
 def setUp(self):
     self.problem = Problem()
Example #6
0
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)
Example #7
0
 def setUp(self):
     self.problem = Problem()
Example #8
0
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)