blob: d105dc020f151c18b3f5b8a14bab07aea66a2a1d [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)
Yesudeep Mangalapillya5a43a52011-08-17 00:19:39 +053024 self.assertEqual(byte_size(255), 1)
25 self.assertEqual(byte_size(256), 2)
26 self.assertEqual(byte_size(0xffff), 2)
27 self.assertEqual(byte_size(0xffffff), 3)
28 self.assertEqual(byte_size(0xffffffff), 4)
29 self.assertEqual(byte_size(0xffffffffff), 5)
30 self.assertEqual(byte_size(0xffffffffffff), 6)
31 self.assertEqual(byte_size(0xffffffffffffff), 7)
32 self.assertEqual(byte_size(0xffffffffffffffff), 8)
Yesudeep Mangalapilly58871582011-08-17 00:35:36 +053033
34 def test_zero(self):
35 self.assertEqual(byte_size(0), 1)
Yesudeep Mangalapilly03c51e72011-08-16 14:30:48 +053036
37 def test_bad_type(self):
38 self.assertRaises(TypeError, byte_size, [])
39 self.assertRaises(TypeError, byte_size, ())
40 self.assertRaises(TypeError, byte_size, dict())
41 self.assertRaises(TypeError, byte_size, "")
42 self.assertRaises(TypeError, byte_size, None)
43
44class Test_bit_size(unittest2.TestCase):
Yesudeep Mangalapillyd1060d32011-08-16 14:45:38 +053045 def test_zero(self):
46 self.assertEqual(bit_size(0), 0)
47
Yesudeep Mangalapilly03c51e72011-08-16 14:30:48 +053048 def test_values(self):
49 self.assertEqual(bit_size(1023), 10)
50 self.assertEqual(bit_size(1024), 11)
51 self.assertEqual(bit_size(1025), 11)
52 self.assertEqual(bit_size(1 << 1024), 1025)
53 self.assertEqual(bit_size((1 << 1024) + 1), 1025)
54 self.assertEqual(bit_size((1 << 1024) - 1), 1024)
55
56 self.assertEqual(_bit_size(1023), 10)
57 self.assertEqual(_bit_size(1024), 11)
58 self.assertEqual(_bit_size(1025), 11)
59 self.assertEqual(_bit_size(1 << 1024), 1025)
60 self.assertEqual(_bit_size((1 << 1024) + 1), 1025)
61 self.assertEqual(_bit_size((1 << 1024) - 1), 1024)