exercism/ruby/rail-fence-cipher/rail_fence_cipher_test.rb

62 lines
1.6 KiB
Ruby

require 'minitest/autorun'
require_relative 'rail_fence_cipher'
class RailFenceCipherTest < Minitest::Test
def test_encode_with_empty_string
# skip
assert_equal '', RailFenceCipher.encode('', 4)
end
def test_encode_with_one_rail
# skip
assert_equal 'One rail, only one rail',
RailFenceCipher.encode('One rail, only one rail', 1)
end
def test_encode_with_two_rails
# skip
assert_equal 'XXXXXXXXXOOOOOOOOO',
RailFenceCipher.encode('XOXOXOXOXOXOXOXOXO', 2)
end
def test_encode_with_three_rails
# skip
assert_equal 'WECRLTEERDSOEEFEAOCAIVDEN',
RailFenceCipher.encode('WEAREDISCOVEREDFLEEATONCE', 3)
end
def test_encode_with_ending_in_the_middle
# skip
assert_equal 'ESXIEECSR', RailFenceCipher.encode('EXERCISES', 4)
end
def test_encode_with_less_letters_than_rails
# skip
assert_equal 'More rails than letters',
RailFenceCipher.encode('More rails than letters', 24)
end
def test_decode_with_empty_string
# skip
assert_equal '', RailFenceCipher.decode('', 4)
end
def test_decode_with_one_rail
# skip
assert_equal 'ABCDEFGHIJKLMNOP',
RailFenceCipher.decode('ABCDEFGHIJKLMNOP', 1)
end
def test_decode_with_two_rails
# skip
assert_equal 'XOXOXOXOXOXOXOXOXO',
RailFenceCipher.decode('XXXXXXXXXOOOOOOOOO', 2)
end
def test_decode_with_three_rails
# skip
assert_equal 'THEDEVILISINTHEDETAILS',
RailFenceCipher.decode('TEITELHDVLSNHDTISEIIEA', 3)
end
end