(self)
| 1138 | self.assertEqual(w.bit_count(), 1) |
| 1139 | |
| 1140 | def test_lcm(self): |
| 1141 | lcm = math.lcm |
| 1142 | self.assertEqual(lcm(0, 0), 0) |
| 1143 | self.assertEqual(lcm(1, 0), 0) |
| 1144 | self.assertEqual(lcm(-1, 0), 0) |
| 1145 | self.assertEqual(lcm(0, 1), 0) |
| 1146 | self.assertEqual(lcm(0, -1), 0) |
| 1147 | self.assertEqual(lcm(7, 1), 7) |
| 1148 | self.assertEqual(lcm(7, -1), 7) |
| 1149 | self.assertEqual(lcm(-23, 15), 345) |
| 1150 | self.assertEqual(lcm(120, 84), 840) |
| 1151 | self.assertEqual(lcm(84, -120), 840) |
| 1152 | self.assertEqual(lcm(1216342683557601535506311712, |
| 1153 | 436522681849110124616458784), |
| 1154 | 16592536571065866494401400422922201534178938447014944) |
| 1155 | |
| 1156 | x = 43461045657039990237 |
| 1157 | y = 10645022458251153277 |
| 1158 | for c in (652560, |
| 1159 | 57655923087165495981): |
| 1160 | a = x * c |
| 1161 | b = y * c |
| 1162 | d = x * y * c |
| 1163 | self.assertEqual(lcm(a, b), d) |
| 1164 | self.assertEqual(lcm(b, a), d) |
| 1165 | self.assertEqual(lcm(-a, b), d) |
| 1166 | self.assertEqual(lcm(b, -a), d) |
| 1167 | self.assertEqual(lcm(a, -b), d) |
| 1168 | self.assertEqual(lcm(-b, a), d) |
| 1169 | self.assertEqual(lcm(-a, -b), d) |
| 1170 | self.assertEqual(lcm(-b, -a), d) |
| 1171 | |
| 1172 | self.assertEqual(lcm(), 1) |
| 1173 | self.assertEqual(lcm(120), 120) |
| 1174 | self.assertEqual(lcm(-120), 120) |
| 1175 | self.assertEqual(lcm(120, 84, 102), 14280) |
| 1176 | self.assertEqual(lcm(120, 0, 84), 0) |
| 1177 | |
| 1178 | self.assertRaises(TypeError, lcm, 120.0) |
| 1179 | self.assertRaises(TypeError, lcm, 120.0, 84) |
| 1180 | self.assertRaises(TypeError, lcm, 120, 84.0) |
| 1181 | self.assertRaises(TypeError, lcm, 120, 0, 84.0) |
| 1182 | self.assertEqual(lcm(MyIndexable(120), MyIndexable(84)), 840) |
| 1183 | |
| 1184 | def testLdexp(self): |
| 1185 | self.assertRaises(TypeError, math.ldexp) |
nothing calls this directly
no test coverage detected