Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_long_future.py @ 48416:fb02fedfe647
Merged revisions 64677 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r64677 | brett.cannon | 2008-07-02 14:52:42 -0700 (Wed, 02 Jul 2008) | 2 lines
Revert r64673 and instead just change the file encoding.
........
| author | Brett Cannon <bcannon@gmail.com> |
|---|---|
| date | Wed, 02 Jul 2008 22:06:12 +0000 |
| parents | 9c930a32cebb |
| children |
| rev | line source |
|---|---|
|
19677
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
1 from __future__ import division |
|
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
2 # When true division is the default, get rid of this and add it to |
|
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
3 # test_long.py instead. In the meantime, it's too obscure to try to |
|
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
4 # trick just part of test_long into using future division. |
|
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
5 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
6 import unittest |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
41554
diff
changeset
|
7 from test.support import run_unittest |
|
19677
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
8 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
9 class TrueDivisionTests(unittest.TestCase): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
10 def test(self): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
11 huge = 1 << 40000 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
12 mhuge = -huge |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
13 self.assertEqual(huge / huge, 1.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
14 self.assertEqual(mhuge / mhuge, 1.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
15 self.assertEqual(huge / mhuge, -1.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
16 self.assertEqual(mhuge / huge, -1.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
17 self.assertEqual(1 / huge, 0.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
18 self.assertEqual(1 / huge, 0.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
19 self.assertEqual(1 / mhuge, 0.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
20 self.assertEqual(1 / mhuge, 0.0) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
21 self.assertEqual((666 * huge + (huge >> 1)) / huge, 666.5) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
22 self.assertEqual((666 * mhuge + (mhuge >> 1)) / mhuge, 666.5) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
23 self.assertEqual((666 * huge + (huge >> 1)) / mhuge, -666.5) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
24 self.assertEqual((666 * mhuge + (mhuge >> 1)) / huge, -666.5) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
25 self.assertEqual(huge / (huge << 1), 0.5) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
26 self.assertEqual((1000000 * huge) / huge, 1000000) |
|
19677
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
27 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
28 namespace = {'huge': huge, 'mhuge': mhuge} |
|
19678
82db9a9006ac
Fixed a typo and added more tests.
Tim Peters <tim.peters@gmail.com>
parents:
19677
diff
changeset
|
29 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
30 for overflow in ["float(huge)", "float(mhuge)", |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
31 "huge / 1", "huge / 2", "huge / -1", "huge / -2", |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
32 "mhuge / 100", "mhuge / 200"]: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
33 # XXX(cwinter) this test doesn't pass when converted to |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
34 # use assertRaises. |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
35 try: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
36 eval(overflow, namespace) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
37 self.fail("expected OverflowError from %r" % overflow) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
38 except OverflowError: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
39 pass |
|
19677
91533675d6cb
Change long/long true division to return as many good bits as it can;
Tim Peters <tim.peters@gmail.com>
parents:
diff
changeset
|
40 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
41 for underflow in ["1 / huge", "2 / huge", "-1 / huge", "-2 / huge", |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
42 "100 / mhuge", "200 / mhuge"]: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
43 result = eval(underflow, namespace) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
44 self.assertEqual(result, 0.0, |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
45 "expected underflow to 0 from %r" % underflow) |
|
19789
94e141e20d61
Added some underflow-to-0.0 long/long true division tests.
Tim Peters <tim.peters@gmail.com>
parents:
19678
diff
changeset
|
46 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
47 for zero in ["huge / 0", "mhuge / 0"]: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
48 self.assertRaises(ZeroDivisionError, eval, zero, namespace) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
49 |
|
19678
82db9a9006ac
Fixed a typo and added more tests.
Tim Peters <tim.peters@gmail.com>
parents:
19677
diff
changeset
|
50 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
51 def test_main(): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
52 run_unittest(TrueDivisionTests) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
53 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
54 if __name__ == "__main__": |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40775
diff
changeset
|
55 test_main() |
