mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| import mpz
 | |
| from test.test_support import vereq, TestFailed
 | |
| 
 | |
| def check_conversion(num):
 | |
|     mpz_num = mpz.mpz(num)
 | |
|     vereq(int(mpz_num), num)
 | |
|     vereq(long(mpz_num), num)
 | |
|     vereq(str(mpz_num), 'mpz(%d)' % int(num))
 | |
| 
 | |
| check_conversion(10)
 | |
| check_conversion(10L)
 | |
| # FIXME: should check strings, but I'm not sure it works, this seems odd:
 | |
| #   mpz.mpz('10') == mpz(12337)
 | |
| 
 | |
| vereq(mpz.divm(100,  200,  3), 2)
 | |
| vereq(mpz.divm(100L, 200,  3), 2)
 | |
| vereq(mpz.divm(100,  200L, 3), 2)
 | |
| vereq(mpz.divm(100L, 200L, 3), 2)
 | |
| 
 | |
| vereq(mpz.gcd(100,  200),  100)
 | |
| vereq(mpz.gcd(100L, 200),  100)
 | |
| vereq(mpz.gcd(100,  200L), 100)
 | |
| vereq(mpz.gcd(100L, 200L), 100)
 | |
| 
 | |
| vereq(mpz.gcdext(100,  200),  (100, 1, 0))
 | |
| vereq(mpz.gcdext(100L, 200),  (100, 1, 0))
 | |
| vereq(mpz.gcdext(100,  200L), (100, 1, 0))
 | |
| vereq(mpz.gcdext(100L, 200L), (100, 1, 0))
 | |
| 
 | |
| vereq(mpz.powm(100,  0,  3), 1)
 | |
| vereq(mpz.powm(100L, 0,  3), 1)
 | |
| vereq(mpz.powm(100,  0L, 3), 1)
 | |
| vereq(mpz.powm(100L, 0L, 3), 1)
 | |
| 
 | |
| vereq(mpz.powm(101,  5,  3333), 1616)
 | |
| vereq(mpz.powm(101L, 5,  3333), 1616)
 | |
| vereq(mpz.powm(101,  5L, 3333), 1616)
 | |
| vereq(mpz.powm(101L, 5L, 3333), 1616)
 | |
| 
 | |
| vereq(mpz.sqrt(100),  10)
 | |
| vereq(mpz.sqrt(100L), 10)
 | |
| vereq(mpz.sqrt(200),  14)
 | |
| vereq(mpz.sqrt(200L), 14)
 | |
| 
 | |
| vereq(mpz.sqrtrem(100),  (10, 0))
 | |
| vereq(mpz.sqrtrem(100L), (10, 0))
 | |
| vereq(mpz.sqrtrem(200),  (14, 4))
 | |
| vereq(mpz.sqrtrem(200L), (14, 4))
 | |
| 
 | |
| try: mpz.mpz(10.)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'mpz(10.) should raise a TypeError'
 | |
| 
 | |
| try: mpz.powm(10.)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'powm(10.) should raise a TypeError'
 | |
| 
 | |
| try: mpz.powm(100,  1,  0)
 | |
| except ValueError: pass
 | |
| else: raise TestFailed, 'powm(100, 1, 0) should raise a ValueError'
 | |
| 
 | |
| try: mpz.divm(10, 10)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'divm(10, 10) should raise a TypeError'
 | |
| 
 | |
| try: mpz.divm(10, 10, 10.)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'divm(10, 10, 10.) should raise a TypeError'
 | |
| 
 | |
| try: mpz.gcd(10)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'gcd(10) should raise a TypeError'
 | |
| 
 | |
| try: mpz.gcd(10, 10.)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'gcd(10, 10.) should raise a TypeError'
 | |
| 
 | |
| try: mpz.gcdext(10)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'gcdext(10) should raise a TypeError'
 | |
| 
 | |
| try: mpz.gcdext(10, 10.)
 | |
| except TypeError: pass
 | |
| else: raise TestFailed, 'gcdext(10, 10.) should raise a TypeError'
 | |
| 
 | |
| try: mpz.mpz(-10).binary()
 | |
| except ValueError: pass
 | |
| else: raise TestFailed, 'mpz(-10).binary() should raise a ValueError'
 | 
