pow.rs 967 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. use ibig::{ibig, ubig};
  2. #[test]
  3. fn test_pow_ubig() {
  4. let test_cases = [
  5. (ubig!(0), 0, ubig!(1)),
  6. (ubig!(100), 0, ubig!(1)),
  7. (ubig!(0), 1, ubig!(0)),
  8. (ubig!(100), 1, ubig!(100)),
  9. (ubig!(0), 2, ubig!(0)),
  10. (ubig!(100), 2, ubig!(10000)),
  11. (ubig!(0), 100, ubig!(0)),
  12. (ubig!(1), 100, ubig!(1)),
  13. (ubig!(2), 10, ubig!(1024)),
  14. (ubig!(7), 10, ubig!(282475249)),
  15. (ubig!(123), 13, ubig!(_1474913153392179474539944683)),
  16. ];
  17. for (a, b, c) in &test_cases {
  18. assert_eq!(a.pow(*b), *c);
  19. }
  20. }
  21. #[test]
  22. fn test_pow_ibig() {
  23. let test_cases = [
  24. (ibig!(0), 0, ibig!(1)),
  25. (ibig!(0), 12, ibig!(0)),
  26. (ibig!(0), 13, ibig!(0)),
  27. (ibig!(7), 2, ibig!(49)),
  28. (ibig!(7), 3, ibig!(343)),
  29. (ibig!(-7), 2, ibig!(49)),
  30. (ibig!(-7), 3, ibig!(-343)),
  31. ];
  32. for (a, b, c) in &test_cases {
  33. assert_eq!(a.pow(*b), *c);
  34. }
  35. }