def test_powers_of_two(self): self.assertEqual(tuple(powers_of_two(-1)), ()) self.assertEqual(tuple(powers_of_two(0)), ()) self.assertEqual(tuple(powers_of_two(2)), (1,)) self.assertEqual(tuple(powers_of_two(3)), (1, 2)) self.assertEqual(tuple(powers_of_two(5)), (1, 2, 4)) self.assertEqual(tuple(powers_of_two(9)), (1, 2, 4, 8)) self.assertEqual(tuple(powers_of_two(300)), (1, 2, 4, 8, 16, 32, 64, 128, 256)) self.assertEqual(tuple(powers_of_two(2500)), (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048)) self.assertEqual(tuple(powers_of_two(4194305)), (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304)) self.assertEqual(tuple(powers_of_two(134217729)), (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728))
def listPowersOfTwo( limit ): return [ x for x in powers_of_two( limit ) ]
def listPowersOfTwo(limit): return [x for x in powers_of_two(limit)]
def test_powers_of_two(self): self.assertEqual(tuple(powers_of_two(1)),(1,)) self.assertEqual(tuple(powers_of_two(7)),(1,2,4)) self.assertEqual(tuple(powers_of_two(8)),(1,2,4,8)) self.assertEqual(tuple(powers_of_two(15)),(1,2,4,8)) self.assertEqual(tuple(powers_of_two(16)),(1,2,4,8,16)) self.assertEqual(tuple(powers_of_two(17)),(1,2,4,8,16)) self.assertEqual(tuple(powers_of_two(31)),(1,2,4,8,16)) self.assertEqual(tuple(powers_of_two(32)),(1,2,4,8,16,32)) self.assertEqual(tuple(powers_of_two(33)),(1,2,4,8,16,32)) self.assertEqual(tuple(powers_of_two(70)),(1,2,4,8,16,32,64)) self.assertEqual(tuple(powers_of_two(130)),(1,2,4,8,16,32,64,128)) self.assertEqual(tuple(powers_of_two(255)),(1,2,4,8,16,32,64,128)) self.assertEqual(tuple(powers_of_two(256)),(1,2,4,8,16,32,64,128,256)) self.assertEqual(tuple(powers_of_two(65536)),(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536)) self.assertEqual(tuple(powers_of_two(-22)),()) self.assertEqual(tuple(powers_of_two(0)),())
def test_powers_of_two(self) : # Small positive number that is a power of 2 data = [1, 2, 4, 8] generator = [] for x in powers_of_two(8) : generator.append(x) self.assertEqual(data, generator) # Small positive whole number data = [1, 2, 4, 8, 16, 32, 64] generator = [] for x in powers_of_two(70) : generator.append(x) self.assertEqual(data, generator) # Small positive floating point number data, generator = [1, 2], [] for x in powers_of_two(2.5) : generator.append(x) self.assertEqual(data, generator) # Large positive whole number (2^64 + 1) data = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 17179869184, 34359738368, 68719476736, 137438953472, 274877906944, 549755813888, 1099511627776, 2199023255552, 4398046511104, 8796093022208, 17592186044416, 35184372088832, 70368744177664, 140737488355328, 281474976710656, 562949953421312, 1125899906842624, 2251799813685248, 4503599627370496, 9007199254740992, 18014398509481984, 36028797018963968, 72057594037927936, 144115188075855872, 288230376151711744, 576460752303423488, 1152921504606846976, 2305843009213693952, 4611686018427387904, 9223372036854775808, 18446744073709551616] generator = [] for x in powers_of_two(18446744073709551617) : generator.append(x) self.assertEqual(data, generator) # Large negative whole number (-(2^64) - 1) data, generator = [], [] for x in powers_of_two(-18446744073709551617) : generator.append(x) self.assertEqual(data, generator) # Small negative whole number generator = [] for x in powers_of_two(-10) : generator.append(x) self.assertEqual(data, generator) # Zero generator = [] for x in powers_of_two(0) : generator.append(x) self.assertEqual(data, generator) # Small, negative floating point number generator = [] for x in powers_of_two(-2.5) : generator.append(x) self.assertEqual(data, generator) # Small, positive floating point less than one generator = [] for x in powers_of_two(0.5) : generator.append(x) self.assertEqual(data, generator) # Small, negative floating point greater than negative one generator = [] for x in powers_of_two(-0.5) : generator.append(x) self.assertEqual(data, generator)
def test_powers_of_two(self): self.assertEqual(tuple(powers_of_two(1)), (1, )) self.assertEqual(tuple(powers_of_two(7)), (1, 2, 4)) self.assertEqual(tuple(powers_of_two(8)), (1, 2, 4, 8)) self.assertEqual(tuple(powers_of_two(15)), (1, 2, 4, 8)) self.assertEqual(tuple(powers_of_two(16)), (1, 2, 4, 8, 16)) self.assertEqual(tuple(powers_of_two(17)), (1, 2, 4, 8, 16)) self.assertEqual(tuple(powers_of_two(31)), (1, 2, 4, 8, 16)) self.assertEqual(tuple(powers_of_two(32)), (1, 2, 4, 8, 16, 32)) self.assertEqual(tuple(powers_of_two(33)), (1, 2, 4, 8, 16, 32)) self.assertEqual(tuple(powers_of_two(70)), (1, 2, 4, 8, 16, 32, 64)) self.assertEqual(tuple(powers_of_two(130)), (1, 2, 4, 8, 16, 32, 64, 128)) self.assertEqual(tuple(powers_of_two(255)), (1, 2, 4, 8, 16, 32, 64, 128)) self.assertEqual(tuple(powers_of_two(256)), (1, 2, 4, 8, 16, 32, 64, 128, 256)) self.assertEqual(tuple(powers_of_two(65536)), (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536)) self.assertEqual(tuple(powers_of_two(-22)), ()) self.assertEqual(tuple(powers_of_two(0)), ())