5 import pyoram.util.misc
7 class Test(unittest2.TestCase):
9 def test_log2floor(self):
10 self.assertEqual(pyoram.util.misc.log2floor(1), 0)
11 self.assertEqual(pyoram.util.misc.log2floor(2), 1)
12 self.assertEqual(pyoram.util.misc.log2floor(3), 1)
13 self.assertEqual(pyoram.util.misc.log2floor(4), 2)
14 self.assertEqual(pyoram.util.misc.log2floor(5), 2)
15 self.assertEqual(pyoram.util.misc.log2floor(6), 2)
16 self.assertEqual(pyoram.util.misc.log2floor(7), 2)
17 self.assertEqual(pyoram.util.misc.log2floor(8), 3)
18 self.assertEqual(pyoram.util.misc.log2floor(9), 3)
20 def test_log2ceil(self):
21 self.assertEqual(pyoram.util.misc.log2ceil(1), 0)
22 self.assertEqual(pyoram.util.misc.log2ceil(2), 1)
23 self.assertEqual(pyoram.util.misc.log2ceil(3), 2)
24 self.assertEqual(pyoram.util.misc.log2ceil(4), 2)
25 self.assertEqual(pyoram.util.misc.log2ceil(5), 3)
26 self.assertEqual(pyoram.util.misc.log2ceil(6), 3)
27 self.assertEqual(pyoram.util.misc.log2ceil(7), 3)
28 self.assertEqual(pyoram.util.misc.log2ceil(8), 3)
29 self.assertEqual(pyoram.util.misc.log2ceil(9), 4)
31 def test_intdivceil(self):
33 with self.assertRaises(ZeroDivisionError):
34 pyoram.util.misc.intdivceil(0, 0)
35 with self.assertRaises(ZeroDivisionError):
36 pyoram.util.misc.intdivceil(1, 0)
38 self.assertEqual(pyoram.util.misc.intdivceil(1, 1), 1)
39 self.assertEqual(pyoram.util.misc.intdivceil(2, 3), 1)
40 self.assertEqual(2 // 3, 0)
41 self.assertEqual(pyoram.util.misc.intdivceil(
42 123123123123123123123123123123123123123123123123,
43 123123123123123123123123123123123123123123123123), 1)
44 self.assertEqual(pyoram.util.misc.intdivceil(
45 2 * 123123123123123123123123123123123123123123123123,
46 123123123123123123123123123123123123123123123123), 2)
47 self.assertEqual(pyoram.util.misc.intdivceil(
48 2 * 123123123123123123123123123123123123123123123123 + 1,
49 123123123123123123123123123123123123123123123123), 3)
50 self.assertEqual(pyoram.util.misc.intdivceil(
51 2 * 123123123123123123123123123123123123123123123123 - 1,
52 123123123123123123123123123123123123123123123123), 2)
54 (2 * 123123123123123123123123123123123123123123123123 - 1) // \
55 123123123123123123123123123123123123123123123123,
58 def test_MemorySize(self):
59 self.assertTrue("b" in str(pyoram.util.misc.MemorySize(0.1)))
60 self.assertTrue("B" in str(pyoram.util.misc.MemorySize(1)))
61 self.assertTrue("B" in str(pyoram.util.misc.MemorySize(999)))
62 self.assertTrue("KB" in str(pyoram.util.misc.MemorySize(1000)))
63 self.assertTrue("KB" in str(pyoram.util.misc.MemorySize(999999)))
64 self.assertTrue("MB" in str(pyoram.util.misc.MemorySize(1000000)))
65 self.assertTrue("MB" in str(pyoram.util.misc.MemorySize(999999999)))
66 self.assertTrue("GB" in str(pyoram.util.misc.MemorySize(1000000000)))
67 self.assertTrue("GB" in str(pyoram.util.misc.MemorySize(9999999999)))
68 self.assertTrue("TB" in str(pyoram.util.misc.MemorySize(1000000000000)))
69 self.assertTrue("b" in str(pyoram.util.misc.MemorySize(1, unit="b")))
70 self.assertTrue("b" in str(pyoram.util.misc.MemorySize(2, unit="b")))
71 self.assertTrue("b" in str(pyoram.util.misc.MemorySize(7.9, unit="b")))
73 self.assertTrue("B" in str(pyoram.util.misc.MemorySize(8, unit="b")))
74 self.assertTrue("B" in str(pyoram.util.misc.MemorySize(1, unit="B")))
75 self.assertTrue("B" in str(pyoram.util.misc.MemorySize(999, unit="B")))
77 self.assertTrue("KB" in str(pyoram.util.misc.MemorySize(1000, unit="B")))
78 self.assertTrue("KB" in str(pyoram.util.misc.MemorySize(1, unit="KB")))
79 self.assertTrue("KB" in str(pyoram.util.misc.MemorySize(999, unit="KB")))
80 self.assertTrue("MB" in str(pyoram.util.misc.MemorySize(1000, unit="KB")))
81 self.assertTrue("MB" in str(pyoram.util.misc.MemorySize(1, unit="MB")))
82 self.assertTrue("MB" in str(pyoram.util.misc.MemorySize(999, unit="MB")))
83 self.assertTrue("GB" in str(pyoram.util.misc.MemorySize(1000, unit="MB")))
84 self.assertTrue("GB" in str(pyoram.util.misc.MemorySize(1, unit="GB")))
85 self.assertTrue("GB" in str(pyoram.util.misc.MemorySize(999, unit="GB")))
86 self.assertTrue("TB" in str(pyoram.util.misc.MemorySize(1000, unit="GB")))
87 self.assertTrue("TB" in str(pyoram.util.misc.MemorySize(1, unit="TB")))
89 self.assertEqual(pyoram.util.misc.MemorySize(1024).KiB, 1)
90 self.assertEqual(pyoram.util.misc.MemorySize(1024**2).MiB, 1)
91 self.assertEqual(pyoram.util.misc.MemorySize(1024**3).GiB, 1)
92 self.assertEqual(pyoram.util.misc.MemorySize(1024**4).TiB, 1)
94 def test_saveload_private_key(self):
95 with tempfile.NamedTemporaryFile(delete=False) as f:
99 pyoram.util.misc.save_private_key(filename, key)
100 loaded_key = pyoram.util.misc.load_private_key(filename)
101 self.assertEqual(key, loaded_key)
105 def test_chunkiter(self):
106 self.assertEqual(list(pyoram.util.misc.chunkiter([1,2,3,4,5], 1)),
107 [[1],[2],[3],[4],[5]])
108 self.assertEqual(list(pyoram.util.misc.chunkiter([1,2,3,4,5], 2)),
110 self.assertEqual(list(pyoram.util.misc.chunkiter([1,2,3,4,5], 3)),
112 self.assertEqual(list(pyoram.util.misc.chunkiter([1,2,3,4,5], 4)),
114 self.assertEqual(list(pyoram.util.misc.chunkiter([1,2,3,4,5], 5)),
116 self.assertEqual(list(pyoram.util.misc.chunkiter([1,2,3,4,5], 6)),
118 self.assertEqual(list(pyoram.util.misc.chunkiter([], 1)),
120 self.assertEqual(list(pyoram.util.misc.chunkiter([], 2)),
123 if __name__ == "__main__":
124 unittest2.main() # pragma: no cover