~mterry/ubuntu-calculator-app/confined

« back to all changes in this revision

Viewing changes to app/tests/autopilot/ubuntu_calculator_app/tests/test_main.py

  • Committer: Bartosz Kosiorek
  • Date: 2015-01-13 15:36:47 UTC
  • mfrom: (59 reboot)
  • mto: This revision was merged to the branch mainline in revision 60.
  • Revision ID: gang65@poczta.onet.pl-20150113153647-hqmxhcw8a37au0s1
Merge from trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
    def setUp(self):
14
14
        super(MainTestCase, self).setUp()
15
15
 
 
16
    def test_temporarly_result(self):
 
17
        self.app.main_view.insert('2450.1*369+')
 
18
 
 
19
        self._assert_result_is(u'904086.9+')
 
20
        self.app.main_view.insert('3.1=')
 
21
 
 
22
        self._assert_result_is(u'904090')
 
23
        self._assert_history_contains(u'2450.1×369+3.1=9.0409e+5')
 
24
 
16
25
    def test_operation_after_clear(self):
17
26
        self.app.main_view.insert('8*8=')
18
27
 
19
 
        self._assert_result_is('64')
20
 
        self._assert_history_contains('8×8=64')
 
28
        self._assert_result_is(u'64')
 
29
        self._assert_history_contains(u'8×8=64')
21
30
 
22
31
        self.app.main_view.clear()
23
32
        self.app.main_view.insert('9*9=')
24
33
 
25
 
        self._assert_result_is('81')
26
 
        self._assert_history_contains('9×9=81')
 
34
        self._assert_result_is(u'81')
 
35
        self._assert_history_contains(u'9×9=81')
27
36
 
28
37
    def test_small_numbers(self):
29
38
        self.app.main_view.insert('0.000000001+1=')
30
 
        self._assert_result_is('1.000000001')
 
39
        self._assert_result_is(u'1.000000001')
 
40
        self._assert_history_contains(u'0.000000001+1=1.000000001')
31
41
 
32
42
        self.app.main_view.clear()
33
43
 
34
44
        self.app.main_view.insert('0.000000001/10=')
35
 
        self._assert_result_is('1e−10')
 
45
        self._assert_result_is(u'1e−10')
 
46
        self._assert_history_contains(u'0.000000001÷10=1e-10')
36
47
 
37
48
    def test_operators_precedence(self):
38
49
        self.app.main_view.insert('2+2*2=')
39
50
 
40
 
        self._assert_result_is('6')
41
 
        self._assert_history_contains('2+2×2=6')
 
51
        self._assert_result_is(u'6')
 
52
        self._assert_history_contains(u'2+2×2=6')
42
53
 
43
54
        self.app.main_view.clear()
44
55
        self.app.main_view.insert('2-2*2=')
45
56
 
46
 
        self._assert_result_is('−2')
47
 
        self._assert_history_contains('2−2×2=-2')
 
57
        self._assert_result_is(u'−2')
 
58
        self._assert_history_contains(u'2−2×2=-2')
48
59
 
49
60
        self.app.main_view.clear()
50
61
        self.app.main_view.insert('5+6/2=')
51
62
 
52
 
        self._assert_result_is('8')
53
 
        self._assert_history_contains('5+6÷2=8')
 
63
        self._assert_result_is(u'8')
 
64
        self._assert_history_contains(u'5+6÷2=8')
54
65
 
55
66
    def test_divide_with_zero(self):
56
67
        self.app.main_view.insert('0/5=')
57
68
 
58
 
        self._assert_result_is('0')
59
 
        self._assert_history_contains('0÷5=0')
 
69
        self._assert_result_is(u'0')
 
70
        self._assert_history_contains(u'0÷5=0')
60
71
 
61
72
    def test_divide_by_zero(self):
62
73
        self.app.main_view.insert('5/0=')
67
78
    def test_divide_zero_by_zero(self):
68
79
        self.app.main_view.insert('0/0=')
69
80
 
70
 
        self._assert_result_is("NaN")
 
81
        self._assert_result_is(u'NaN')
71
82
        self._assert_history_contains(u'0÷0=NaN')
72
83
 
 
84
    def test_equals_doesnt_change_numbers(self):
 
85
        self.app.main_view.insert('125')
 
86
        self._assert_result_is(u'125')
 
87
 
 
88
        self.app.main_view.insert('=')
 
89
        self._assert_result_is(u'125')
 
90
 
 
91
    def test_divide_with_infinite_number_as_result(self):
 
92
        self.app.main_view.insert('1/3=')
 
93
        self._assert_result_is(u'0.3333333333333333')
 
94
 
 
95
    def test_operation_on_infinite_number(self):
 
96
        self.app.main_view.insert('5/3=')
 
97
        self._assert_result_is(u'1.6666666666666667')
 
98
 
 
99
        self.app.main_view.insert('-1=')
 
100
        self._assert_result_is(u'0.6666666666666667')
 
101
 
73
102
    def _assert_result_is(self, value):
74
103
        self.assertThat(self.app.main_view.get_result,
75
104
                        Eventually(Equals(value)))