blob: 9980b15e6af917c27d6e4f1fdeff3be43c1a9c44 [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
19
20class Test_byte_size(unittest2.TestCase):
21 def test_values(self):
22 self.assertEqual(byte_size(1 << 1023), 128)
23 self.assertEqual(byte_size((1 << 1024) - 1), 128)
24 self.assertEqual(byte_size(1 << 1024), 129)
25
26 def test_zero(self):
27 self.assertEqual(byte_size(0), 0)
28
29 def test_bad_type(self):
30 self.assertRaises(TypeError, byte_size, [])
31 self.assertRaises(TypeError, byte_size, ())
32 self.assertRaises(TypeError, byte_size, dict())
33 self.assertRaises(TypeError, byte_size, "")
34 self.assertRaises(TypeError, byte_size, None)
35
36class Test_bit_size(unittest2.TestCase):
Yesudeep Mangalapillyd1060d32011-08-16 14:45:38 +053037 def test_zero(self):
38 self.assertEqual(bit_size(0), 0)
39
Yesudeep Mangalapilly03c51e72011-08-16 14:30:48 +053040 def test_values(self):
41 self.assertEqual(bit_size(1023), 10)
42 self.assertEqual(bit_size(1024), 11)
43 self.assertEqual(bit_size(1025), 11)
44 self.assertEqual(bit_size(1 << 1024), 1025)
45 self.assertEqual(bit_size((1 << 1024) + 1), 1025)
46 self.assertEqual(bit_size((1 << 1024) - 1), 1024)
47
48 self.assertEqual(_bit_size(1023), 10)
49 self.assertEqual(_bit_size(1024), 11)
50 self.assertEqual(_bit_size(1025), 11)
51 self.assertEqual(_bit_size(1 << 1024), 1025)
52 self.assertEqual(_bit_size((1 << 1024) + 1), 1025)
53 self.assertEqual(_bit_size((1 << 1024) - 1), 1024)