def test_pow(self): m = ModularSolver(31) self.assertEqual(m.pow(2, 5), 1) self.assertEqual(m.pow(2, 31), 2) self.assertEqual(m.pow(2, 33), 8) self.assertEqual(m.pow(10, 13), 10 ** 13 % 31) self.assertEqual(m.pow(13, 10), 13 ** 10 % 31) self.assertEqual(m.pow(2, 40), 2 ** 40 % 31) m = ModularSolver(11) self.assertEqual(m.pow(10, 13), 10 ** 13 % 11) self.assertEqual(m.pow(13, 10), 13 ** 10 % 11)