GnuCash c935c2f+
Loading...
Searching...
No Matches
Public Member Functions
test_numeric.TestGncNumeric Class Reference
Inheritance diagram for test_numeric.TestGncNumeric:

Public Member Functions

 test_defaut (self)
 
 test_from_num_denom (self)
 
 test_from_int (self)
 
 test_from_float (self)
 
 test_from_float_auto (self)
 
 test_from_instance (self)
 
 test_from_str (self)
 
 test_to_str (self)
 
 test_to_double (self)
 
 test_to_fraction (self)
 
 test_incorect_args (self)
 

Detailed Description

Definition at line 6 of file test_numeric.py.

Member Function Documentation

◆ test_defaut()

test_numeric.TestGncNumeric.test_defaut (   self)

Definition at line 7 of file test_numeric.py.

7 def test_defaut(self):
8 num = GncNumeric()
9 self.assertEqual(str(num), "0/1")
10 self.assertEqual(num.num(), 0)
11 self.assertEqual(num.denom(), 1)
12
The primary numeric class for representing amounts and values.

◆ test_from_float()

test_numeric.TestGncNumeric.test_from_float (   self)

Definition at line 32 of file test_numeric.py.

32 def test_from_float(self):
33 num = GncNumeric(3.1, 20, GNC_HOW_DENOM_FIXED | GNC_HOW_RND_NEVER)
34 self.assertEqual(str(num), "62/20")
35 self.assertEqual(num.num(), 62)
36 self.assertEqual(num.denom(), 20)
37
38 num = GncNumeric(1/3.0, 10000000000, GNC_HOW_RND_FLOOR)
39 self.assertEqual(str(num), "3333333333/10000000000")
40 self.assertEqual(num.num(), 3333333333)
41 self.assertEqual(num.denom(), 10000000000)
42
43 num = GncNumeric(1/3.0, 10000000000, GNC_HOW_RND_CEIL)
44 self.assertEqual(str(num), "3333333334/10000000000")
45 self.assertEqual(num.num(), 3333333334)
46 self.assertEqual(num.denom(), 10000000000)
47

◆ test_from_float_auto()

test_numeric.TestGncNumeric.test_from_float_auto (   self)

Definition at line 48 of file test_numeric.py.

48 def test_from_float_auto(self):
49 num = GncNumeric(3.1)
50 self.assertEqual(str(num), "31/10")
51 self.assertEqual(num.num(), 31)
52 self.assertEqual(num.denom(), 10)
53

◆ test_from_instance()

test_numeric.TestGncNumeric.test_from_instance (   self)

Definition at line 54 of file test_numeric.py.

54 def test_from_instance(self):
55 orig = GncNumeric(3)
56 num = GncNumeric(instance=orig.instance)
57 self.assertEqual(str(num), "3/1")
58 self.assertEqual(num.num(), 3)
59 self.assertEqual(num.denom(), 1)
60

◆ test_from_int()

test_numeric.TestGncNumeric.test_from_int (   self)

Definition at line 19 of file test_numeric.py.

19 def test_from_int(self):
20 num = GncNumeric(3)
21 self.assertEqual(str(num), "3/1")
22 self.assertEqual(num.num(), 3)
23 self.assertEqual(num.denom(), 1)
24
25 with self.assertRaises(Exception) as context:
26 GncNumeric((2**64)+1)
27
28 #On Linux it raises an OverflowError while on MacOS it's a TypeError.
29 self.assertTrue(isinstance(context.exception, TypeError) or
30 isinstance(context.exception, OverflowError))
31

◆ test_from_num_denom()

test_numeric.TestGncNumeric.test_from_num_denom (   self)

Definition at line 13 of file test_numeric.py.

13 def test_from_num_denom(self):
14 num = GncNumeric(1, 2)
15 self.assertEqual(str(num), "1/2")
16 self.assertEqual(num.num(), 1)
17 self.assertEqual(num.denom(), 2)
18

◆ test_from_str()

test_numeric.TestGncNumeric.test_from_str (   self)

Definition at line 61 of file test_numeric.py.

61 def test_from_str(self):
62 num = GncNumeric("3.1")
63 self.assertEqual(str(num), "31/10")
64 self.assertEqual(num.num(), 31)
65 self.assertEqual(num.denom(), 10)
66
67 num = GncNumeric("1/3")
68 self.assertEqual(str(num), "1/3")
69 self.assertEqual(num.num(), 1)
70 self.assertEqual(num.denom(), 3)
71

◆ test_incorect_args()

test_numeric.TestGncNumeric.test_incorect_args (   self)

Definition at line 88 of file test_numeric.py.

88 def test_incorect_args(self):
89 with self.assertRaises(TypeError):
90 GncNumeric(1, 2, 3)
91
92 with self.assertRaises(TypeError):
93 GncNumeric("1", 2)
94
95 with self.assertRaises(TypeError):
96 GncNumeric(1.1, "round")
97
98 with self.assertRaises(TypeError):
99 GncNumeric(complex(1, 1))
100

◆ test_to_double()

test_numeric.TestGncNumeric.test_to_double (   self)

Definition at line 79 of file test_numeric.py.

79 def test_to_double(self):
80 for test_num in [0.0, 1.1, -1.1, 1/3.0]:
81 self.assertEqual(GncNumeric(test_num).to_double(), test_num)
82

◆ test_to_fraction()

test_numeric.TestGncNumeric.test_to_fraction (   self)

Definition at line 83 of file test_numeric.py.

83 def test_to_fraction(self):
84 fraction = GncNumeric("1000/3").to_fraction()
85 self.assertEqual(fraction.numerator, 1000)
86 self.assertEqual(fraction.denominator, 3)
87

◆ test_to_str()

test_numeric.TestGncNumeric.test_to_str (   self)

Definition at line 72 of file test_numeric.py.

72 def test_to_str(self):
73 num = GncNumeric("1000/3")
74 self.assertEqual(str(num), "1000/3")
75
76 num = GncNumeric(1, 0)
77 self.assertEqual(str(num), "1/0")
78

The documentation for this class was generated from the following file: