text: import random
  import unittest
  
  from algorithms.factorization.pollard_rho import pollard_rho
  from algorithms.factorization.trial_division import trial_division
  from algorithms.factorization.fermat import fermat
  
  
  class TestFermat(unittest.TestCase):
  
      def test_fermat(self):
          x = random.randint(1, 100000000)
          factors = fermat(x)
          res = 1
          for i in factors:
              res *= i
          self.assertEqual(x, res)
  
  
  class TestPollardRho(unittest.TestCase):
  
      def test_pollard_rho(self):
          x = random.randint(1, 100000000000)
          factors = pollard_rho(x)
          res = 1
          for j in factors:
              res *= j
          self.assertEqual(x, res)
  
  
  class TestTrialDivision(unittest.TestCase):
  
      def test_trial_division(self):
          x = random.randint(0, 10000000000)
          factors = trial_division(x)
          res = 1
          for i in factors:
              res *= i
          self.assertEqual(x, res)
  