import pytest
from PalindromeTransformer import PalindromeTransformer
MAX = 10000
@pytest.fixture
def transformer():
transformer = PalindromeTransformer( MAX )
return transformer
@pytest.mark.usefixtures()
class TestPalindromeTransformer:
def test_success( self , transformer ):
assert 11 == transformer.transform( 10 )
def test_odd_success( self , transformer ):
assert 44 == transformer.transform( 13 )
def test_even_success( self , transformer ):
assert 606 == transformer.transform( 204 )
def test_single_digit_success( self , transformer ):
for i in xrange( 10 ):
assert i == transformer.transform( i )
def test_already_palindrome_success( self , transformer ):
assert 121 == transformer.transform( 121 )
def test_over_max_returns_error( self , transformer ):
assert PalindromeTransformer.ERROR == transformer.transform( 100000 )
def test_special_case_returns_error( self , transformer ):
assert PalindromeTransformer.ERROR == transformer.transform( 196 )
@pytest.mark.usefixtures()
class TestPalindromeTransformerIsPalindrome:
def test_single_digit_success( self , transformer ):
for i in xrange( 10 ):
assert True == transformer.is_palindrome( i )
def test_odd_palindrome_success( self , transformer ):
assert True == transformer.is_palindrome( 121 )
def test_all_same_digits_palindrome_success( self , transformer ):
assert True == transformer.is_palindrome( 33333333 )
def test_long_success( self , transformer ):
assert True == transformer.is_palindrome( 1234554321 )
def test_not_palindrome_is_false( self , transformer ):
assert False == transformer.is_palindrome( 10 )
@pytest.mark.usefixtures()
class TestPalindromeTransformerReverseInteger:
def test_single_digit_success( self , transformer ):
for i in xrange( 10 ):
assert i == transformer.reverse_positive_integer( i )
def test_already_palindrome_success( self , transformer ):
assert 121 == transformer.reverse_positive_integer( 121 )
def test_success( self , transformer ):
assert 1 == transformer.reverse_positive_integer( 10 )
def test_long_success( self , transformer ):
assert 123456789 == transformer.reverse_positive_integer( 987654321 )
def test_negative_returns_zero( self , transformer ):
assert 0 == transformer.reverse_positive_integer( -1 )