blob: 9b691936ad0a5eb5d54e764b93e3d1c3c281a829 [file] [log] [blame]
Yesudeep Mangalapilly03c51e72011-08-16 14:30:48 +05301#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4import unittest2
5import struct
6from rsa._compat import byte, b
7from rsa.common import byte_size, bit_size, _bit_size
8
9
10class Test_byte(unittest2.TestCase):
11 def test_values(self):
12 self.assertEqual(byte(0), b('\x00'))
13 self.assertEqual(byte(255), b('\xff'))
14
15 def test_struct_error_when_out_of_bounds(self):
16 self.assertRaises(struct.error, byte, 256)
17 self.assertRaises(struct.error, byte, -1)
18
Yesudeep Mangalapilly03c51e72011-08-16 14:30:48 +053019class Test_byte_size(unittest2.TestCase):
20 def test_values(self):
21 self.assertEqual(byte_size(1 << 1023), 128)
22 self.assertEqual(byte_size((1 << 1024) - 1), 128)
23 self.assertEqual(byte_size(1 << 1024), 129)
24
25 def test_zero(self):
Yesudeep Mangalapillya5a43a52011-08-17 00:19:39 +053026 self.assertEqual(byte_size(0), 1)
27 self.assertEqual(byte_size(255), 1)
28 self.assertEqual(byte_size(256), 2)
29 self.assertEqual(byte_size(0xffff), 2)
30 self.assertEqual(byte_size(0xffffff), 3)
31 self.assertEqual(byte_size(0xffffffff), 4)
32 self.assertEqual(byte_size(0xffffffffff), 5)
33 self.assertEqual(byte_size(0xffffffffffff), 6)
34 self.assertEqual(byte_size(0xffffffffffffff), 7)
35 self.assertEqual(byte_size(0xffffffffffffffff), 8)
36
Yesudeep Mangalapilly03c51e72011-08-16 14:30:48 +053037
38 def test_bad_type(self):
39 self.assertRaises(TypeError, byte_size, [])
40 self.assertRaises(TypeError, byte_size, ())
41 self.assertRaises(TypeError, byte_size, dict())
42 self.assertRaises(TypeError, byte_size, "")
43 self.assertRaises(TypeError, byte_size, None)
44
45class Test_bit_size(unittest2.TestCase):
Yesudeep Mangalapillyd1060d32011-08-16 14:45:38 +053046 def test_zero(self):
47 self.assertEqual(bit_size(0), 0)
48
Yesudeep Mangalapilly03c51e72011-08-16 14:30:48 +053049 def test_values(self):
50 self.assertEqual(bit_size(1023), 10)
51 self.assertEqual(bit_size(1024), 11)
52 self.assertEqual(bit_size(1025), 11)
53 self.assertEqual(bit_size(1 << 1024), 1025)
54 self.assertEqual(bit_size((1 << 1024) + 1), 1025)
55 self.assertEqual(bit_size((1 << 1024) - 1), 1024)
56
57 self.assertEqual(_bit_size(1023), 10)
58 self.assertEqual(_bit_size(1024), 11)
59 self.assertEqual(_bit_size(1025), 11)
60 self.assertEqual(_bit_size(1 << 1024), 1025)
61 self.assertEqual(_bit_size((1 << 1024) + 1), 1025)
62 self.assertEqual(_bit_size((1 << 1024) - 1), 1024)