(self)
| 2769 | |
| 2770 | @support.run_with_tz('MSK-03') # Something east of Greenwich |
| 2771 | def test_microsecond_rounding_decimal(self): |
| 2772 | D = decimal.Decimal |
| 2773 | def utcfromtimestamp(*args, **kwargs): |
| 2774 | with self.assertWarns(DeprecationWarning): |
| 2775 | return self.theclass.utcfromtimestamp(*args, **kwargs) |
| 2776 | |
| 2777 | for fts in [self.theclass.fromtimestamp, |
| 2778 | utcfromtimestamp]: |
| 2779 | zero = fts(D(0)) |
| 2780 | self.assertEqual(zero.second, 0) |
| 2781 | self.assertEqual(zero.microsecond, 0) |
| 2782 | one = fts(D('0.000_001')) |
| 2783 | minus_one = fts(D('-0.000_001')) |
| 2784 | |
| 2785 | self.assertEqual(minus_one.second, 59) |
| 2786 | self.assertEqual(minus_one.microsecond, 999_999) |
| 2787 | |
| 2788 | t = fts(D('-0.000_000_1')) |
| 2789 | self.assertEqual(t, zero) |
| 2790 | t = fts(D('-0.000_000_9')) |
| 2791 | self.assertEqual(t, minus_one) |
| 2792 | t = fts(D(-1)/2**7) |
| 2793 | self.assertEqual(t.second, 59) |
| 2794 | self.assertEqual(t.microsecond, 992188) |
| 2795 | |
| 2796 | t = fts(D('0.000_000_1')) |
| 2797 | self.assertEqual(t, zero) |
| 2798 | t = fts(D('0.000_000_5')) |
| 2799 | self.assertEqual(t, zero) |
| 2800 | t = fts(D('0.000_000_500_000_000_000_000_1')) |
| 2801 | self.assertEqual(t, one) |
| 2802 | t = fts(D('0.000_000_9')) |
| 2803 | self.assertEqual(t, one) |
| 2804 | t = fts(D('0.999_999_499_999_999_9')) |
| 2805 | self.assertEqual(t.second, 0) |
| 2806 | self.assertEqual(t.microsecond, 999_999) |
| 2807 | t = fts(D('0.999_999_5')) |
| 2808 | self.assertEqual(t.second, 1) |
| 2809 | self.assertEqual(t.microsecond, 0) |
| 2810 | t = fts(D('0.999_999_9')) |
| 2811 | self.assertEqual(t.second, 1) |
| 2812 | self.assertEqual(t.microsecond, 0) |
| 2813 | t = fts(D(1)/2**7) |
| 2814 | self.assertEqual(t.second, 0) |
| 2815 | self.assertEqual(t.microsecond, 7812) |
| 2816 | |
| 2817 | @support.run_with_tz('MSK-03') # Something east of Greenwich |
| 2818 | def test_microsecond_rounding_fraction(self): |
nothing calls this directly
no test coverage detected