# Standard modules
import sys
import unittest
# Tested module
import areamax_whizzrd_rev as areamax
PATTERN_ONE = """83 17 48 41 50 85 56 98 87 20 38 12 76 11 89
27 47 15 38 45 14 79 74 42 85 16 14 41 91 78
70 60 82 47 12 82 27 44 42 21 41 25 65 68 11
51 59 88 54 17 14 87 81 87 33 68 18 84 40 95
52 12 91 66 35 13 43 24 59 23 25 92 67 31 89
66 95 53 89 71 13 31 35 25 31 30 89 51 88 22
60 11 93 10 45 82 99 11 84 55 13 79 20 65 80
70 44 12 49 92 39 32 22 55 58 16 46 69 96 48
49 52 30 45 68 45 62 85 99 89 43 11 65 52 31
13 38 81 96 19 88 14 74 12 47 88 45 93 74 64
24 40 46 63 99 35 55 94 41 66 78 66 77 27 96
25 62 36 67 36 48 71 34 75 41 21 65 24 48 45
16 73 71 80 59 59 25 28 30 57 83 42 89 76 74
40 20 96 86 46 87 90 40 55 39 72 92 98 76 37
89 99 41 95 56 96 99 83 71 23 10 63 73 94 56"""
PATTERN_TWO = """72 68 28 67 98 20 71 65 43 81 10 90 83 53 19
50 62 32 53 79 93 60 84 17 87 92 25 84 86 89
56 64 28 73 46 11 22 44 89 60 92 93 17 62 40
55 50 53 19 84 54 68 52 26 58 24 86 84 22 16
16 45 95 60 33 30 19 22 83 22 87 84 22 60 10
87 60 77 54 72 93 60 88 40 18 10 30 85 38 30
54 95 55 40 16 61 30 43 44 78 30 94 76 53 89
42 44 21 80 46 55 52 69 43 92 48 42 46 78 99
87 53 36 50 40 31 26 96 54 19 44 44 56 98 97
60 65 70 55 53 38 71 18 38 90 30 97 98 61 13
18 28 39 20 81 42 31 13 44 10 20 64 94 27 76
27 10 90 86 16 25 31 93 44 82 49 44 78 65 34
62 73 84 70 67 63 18 95 74 34 72 65 69 44 61
69 28 55 20 19 91 21 90 52 50 40 47 43 60 40
83 31 32 53 94 12 75 10 46 78 50 48 32 52 30"""
PATTERN_THREE = """35 68 63 93 97 57 17 36 56 70 95 23 13 88 82
78 52 71 47 27 45 80 82 96 89 71 56 75 26 93
74 63 49 67 65 90 61 29 49 31 91 85 60 27 13
22 49 70 30 71 87 78 48 68 98 89 40 71 24 60
42 49 49 69 86 52 23 77 77 95 45 51 58 90 73
11 28 86 62 88 47 28 10 99 22 67 54 44 58 17
97 54 11 47 78 38 77 79 31 97 12 87 56 23 33
63 35 85 29 44 55 40 84 33 18 23 66 60 15 99
53 38 75 12 49 69 96 78 89 20 48 12 34 44 40
43 82 27 84 58 40 59 24 54 11 87 39 40 99 65
47 81 16 61 56 87 62 53 56 80 41 60 73 99 72
96 45 64 77 41 34 97 41 99 86 29 84 98 34 69
79 17 83 37 73 95 13 65 36 20 74 98 56 41 50
47 57 46 17 98 99 25 31 49 72 12 85 67 34 88
69 38 59 98 14 73 86 72 22 63 80 47 62 32 38"""
PATTERN_FOUR = """82 54 50 21 43 56 30 82 44 31 37 84 91 96 11
77 57 21 32 35 46 52 94 15 73 86 42 32 29 37
23 59 32 12 30 83 47 89 94 31 60 89 62 25 32
98 36 88 81 76 74 81 86 15 25 55 29 57 54 21
17 11 84 17 96 98 77 50 34 47 41 45 75 90 24
31 28 14 86 56 16 50 50 80 78 22 66 55 11 23
70 43 96 55 71 22 53 76 85 27 45 52 49 52 36
82 92 41 67 44 62 72 55 70 78 85 26 29 56 55
82 56 91 79 55 84 52 40 49 51 68 14 75 97 51
16 28 19 33 81 10 88 94 26 25 96 42 83 10 99
11 64 93 84 37 83 45 54 42 41 62 80 72 79 11
57 41 28 92 27 26 26 69 65 55 62 94 87 91 14
90 12 68 93 55 47 39 92 93 65 74 40 22 98 69
34 97 64 39 90 17 82 24 19 33 74 64 47 24 93
78 71 83 79 20 79 85 77 53 71 19 78 33 80 67"""
class AreaMaxingTest(unittest.TestCase):
def testPatternOne(self):
e_max, e_coords = 391, (13, 3)
g_max, g_coords = areamax.AreaMax(PATTERN_ONE)
g_coords = tuple(g_coords)
self.assertEqual(g_max, e_max,
'Wrong maximum. Got %d expected %d.' % (g_max, e_max))
self.assertEqual(
g_coords, e_coords,
'Wrong coordinates: expected: %s, got: %s.' % (e_coords, g_coords))
def testPatternTwo(self):
e_max, e_coords = 450, (12, 6)
g_max, g_coords = areamax.AreaMax(PATTERN_TWO)
g_coords = tuple(g_coords)
self.assertEqual(g_max, e_max,
'Wrong maximum. Got %d expected %d.' % (g_max, e_max))
self.assertEqual(
g_coords, e_coords,
'Wrong coordinates: expected: %s, got: %s.' % (e_coords, g_coords))
def testPatternThree(self):
e_max, e_coords = 461, (11, 4)
g_max, g_coords = areamax.AreaMax(PATTERN_THREE)
g_coords = tuple(g_coords)
self.assertEqual(g_max, e_max,
'Wrong maximum. Got %d expected %d.' % (g_max, e_max))
self.assertEqual(
g_coords, e_coords,
'Wrong coordinates: expected: %s, got: %s.' % (e_coords, g_coords))
def testPatternFour(self):
e_max, e_coords = 419, (4, 11)
g_max, g_coords = areamax.AreaMax(PATTERN_FOUR)
g_coords = tuple(g_coords)
self.assertEqual(g_max, e_max,
'Wrong maximum. Got %d expected %d.' % (g_max, e_max))
self.assertEqual(
g_coords, e_coords,
'Wrong coordinates: expected: %s, got: %s.' % (e_coords, g_coords))
if __name__ == '__main__':
unittest.main()