text: from sympy.sets.ordinals import Ordinal, OmegaPower, ord0, omega
  from sympy.testing.pytest import raises
  
  def test_string_ordinals():
      assert str(omega) == 'w'
      assert str(Ordinal(OmegaPower(5, 3), OmegaPower(3, 2))) == 'w**5*3 + w**3*2'
      assert str(Ordinal(OmegaPower(5, 3), OmegaPower(0, 5))) == 'w**5*3 + 5'
      assert str(Ordinal(OmegaPower(1, 3), OmegaPower(0, 5))) == 'w*3 + 5'
      assert str(Ordinal(OmegaPower(omega + 1 ,1), OmegaPower(3, 2))) == 'w**(w + 1) + w**3*2'
  
  def test_addition_with_integers():
      assert 3 + Ordinal(OmegaPower(5, 3)) == Ordinal(OmegaPower(5, 3))
      assert Ordinal(OmegaPower(5, 3))+3 == Ordinal(OmegaPower(5, 3), OmegaPower(0, 3))
      assert Ordinal(OmegaPower(5, 3), OmegaPower(0, 2))+3 == \
          Ordinal(OmegaPower(5, 3), OmegaPower(0, 5))
  
  
  def test_addition_with_ordinals():
      assert Ordinal(OmegaPower(5, 3), OmegaPower(3, 2)) + Ordinal(OmegaPower(3, 3)) == \
          Ordinal(OmegaPower(5, 3), OmegaPower(3, 5))
      assert Ordinal(OmegaPower(5, 3), OmegaPower(3, 2)) + Ordinal(OmegaPower(4, 2)) == \
          Ordinal(OmegaPower(5, 3), OmegaPower(4, 2))
      assert Ordinal(OmegaPower(omega, 2), OmegaPower(3, 2)) + Ordinal(OmegaPower(4, 2)) == \
          Ordinal(OmegaPower(omega, 2), OmegaPower(4, 2))
  
  def test_comparison():
      assert Ordinal(OmegaPower(5, 3)) > Ordinal(OmegaPower(4, 3), OmegaPower(2, 1))
      assert Ordinal(OmegaPower(5, 3), OmegaPower(3, 2)) < Ordinal(OmegaPower(5, 4))
      assert Ordinal(OmegaPower(5, 4)) < Ordinal(OmegaPower(5, 5), OmegaPower(4, 1))
  
      assert Ordinal(OmegaPower(5, 3), OmegaPower(3, 2)) == \
          Ordinal(OmegaPower(5, 3), OmegaPower(3, 2))
      assert not Ordinal(OmegaPower(5, 3), OmegaPower(3, 2)) == Ordinal(OmegaPower(5, 3))
      assert Ordinal(OmegaPower(omega, 3)) > Ordinal(OmegaPower(5, 3))
  
  def test_multiplication_with_integers():
      w = omega
      assert 3*w == w
      assert w*9 == Ordinal(OmegaPower(1, 9))
  
  def test_multiplication():
      w = omega
      assert w*(w + 1) == w*w + w
      assert (w + 1)*(w + 1) ==  w*w + w + 1
      assert w*1 == w
      assert 1*w == w
      assert w*ord0 == ord0
      assert ord0*w == ord0
      assert w**w == w * w**w
      assert (w**w)*w*w == w**(w + 2)
  
  def test_exponentiation():
      w = omega
      assert w**2 == w*w
      assert w**3 == w*w*w
      assert w**(w + 1) == Ordinal(OmegaPower(omega + 1, 1))
      assert (w**w)*(w**w) == w**(w*2)
  
  def test_comapre_not_instance():
      w = OmegaPower(omega + 1 , 1)
      assert(not (w == None))
      assert(not (w < 5))
      raises(TypeError, lambda: w < 6.66)
  
  def test_is_successort():
      w = Ordinal(OmegaPower(5,1))
      assert(not w.is_successor_ordinal)
  