Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions exercises/practice/pig-latin/.meta/test_template.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
require 'minitest/autorun'
require_relative 'pig_latin'

class PigLatinTest < Minitest::Test
<% json["cases"].each do |cases| %>
<% cases["cases"].each do |sub_case|%>
def test_<%= underscore(sub_case["description"]) %>
<%= skip? %>
actual = PigLatin.translate('<%= sub_case["input"]["phrase"] %>')
expected = '<%= sub_case["expected"] %>'
assert_equal expected, actual
end
<% end%>
<% end %>
end
95 changes: 73 additions & 22 deletions exercises/practice/pig-latin/pig_latin_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,111 +4,162 @@
class PigLatinTest < Minitest::Test
def test_word_beginning_with_a
# skip
assert_equal "appleay", PigLatin.translate("apple")
actual = PigLatin.translate('apple')
expected = 'appleay'
assert_equal expected, actual
end

def test_word_beginning_with_e
skip
assert_equal "earay", PigLatin.translate("ear")
actual = PigLatin.translate('ear')
expected = 'earay'
assert_equal expected, actual
end

def test_word_beginning_with_i
skip
assert_equal "iglooay", PigLatin.translate("igloo")
actual = PigLatin.translate('igloo')
expected = 'iglooay'
assert_equal expected, actual
end

def test_word_beginning_with_o
skip
assert_equal "objectay", PigLatin.translate("object")
actual = PigLatin.translate('object')
expected = 'objectay'
assert_equal expected, actual
end

def test_word_beginning_with_u
skip
assert_equal "underay", PigLatin.translate("under")
actual = PigLatin.translate('under')
expected = 'underay'
assert_equal expected, actual
end

def test_word_beginning_with_a_vowel_and_followed_by_a_qu
skip
assert_equal "equalay", PigLatin.translate("equal")
actual = PigLatin.translate('equal')
expected = 'equalay'
assert_equal expected, actual
end

def test_word_beginning_with_p
skip
assert_equal "igpay", PigLatin.translate("pig")
actual = PigLatin.translate('pig')
expected = 'igpay'
assert_equal expected, actual
end

def test_word_beginning_with_k
skip
assert_equal "oalakay", PigLatin.translate("koala")
actual = PigLatin.translate('koala')
expected = 'oalakay'
assert_equal expected, actual
end

def test_word_beginning_with_x
skip
assert_equal "enonxay", PigLatin.translate("xenon")
actual = PigLatin.translate('xenon')
expected = 'enonxay'
assert_equal expected, actual
end

def test_word_beginning_with_q_without_a_following_u
skip
assert_equal "atqay", PigLatin.translate("qat")
actual = PigLatin.translate('qat')
expected = 'atqay'
assert_equal expected, actual
end

def test_word_beginning_with_consonant_and_vowel_containing_qu
skip
actual = PigLatin.translate('liquid')
expected = 'iquidlay'
assert_equal expected, actual
end

def test_word_beginning_with_ch
skip
assert_equal "airchay", PigLatin.translate("chair")
actual = PigLatin.translate('chair')
expected = 'airchay'
assert_equal expected, actual
end

def test_word_beginning_with_qu
skip
assert_equal "eenquay", PigLatin.translate("queen")
actual = PigLatin.translate('queen')
expected = 'eenquay'
assert_equal expected, actual
end

def test_word_beginning_with_qu_and_a_preceding_consonant
skip
assert_equal "aresquay", PigLatin.translate("square")
actual = PigLatin.translate('square')
expected = 'aresquay'
assert_equal expected, actual
end

def test_word_beginning_with_th
skip
assert_equal "erapythay", PigLatin.translate("therapy")
actual = PigLatin.translate('therapy')
expected = 'erapythay'
assert_equal expected, actual
end

def test_word_beginning_with_thr
skip
assert_equal "ushthray", PigLatin.translate("thrush")
actual = PigLatin.translate('thrush')
expected = 'ushthray'
assert_equal expected, actual
end

def test_word_beginning_with_sch
skip
assert_equal "oolschay", PigLatin.translate("school")
actual = PigLatin.translate('school')
expected = 'oolschay'
assert_equal expected, actual
end

def test_word_beginning_with_yt
skip
assert_equal "yttriaay", PigLatin.translate("yttria")
actual = PigLatin.translate('yttria')
expected = 'yttriaay'
assert_equal expected, actual
end

def test_word_beginning_with_xr
skip
assert_equal "xrayay", PigLatin.translate("xray")
actual = PigLatin.translate('xray')
expected = 'xrayay'
assert_equal expected, actual
end

def test_y_is_treated_like_a_consonant_at_the_beginning_of_a_word
skip
assert_equal "ellowyay", PigLatin.translate("yellow")
actual = PigLatin.translate('yellow')
expected = 'ellowyay'
assert_equal expected, actual
end

def test_y_is_treated_like_a_vowel_at_the_end_of_a_consonant_cluster
skip
assert_equal "ythmrhay", PigLatin.translate("rhythm")
actual = PigLatin.translate('rhythm')
expected = 'ythmrhay'
assert_equal expected, actual
end

def test_y_as_second_letter_in_two_letter_word
skip
assert_equal "ymay", PigLatin.translate("my")
actual = PigLatin.translate('my')
expected = 'ymay'
assert_equal expected, actual
end

def test_a_whole_phrase
skip
assert_equal "ickquay astfay unray", PigLatin.translate("quick fast run")
actual = PigLatin.translate('quick fast run')
expected = 'ickquay astfay unray'
assert_equal expected, actual
end
end
14 changes: 14 additions & 0 deletions exercises/practice/poker/.meta/test_template.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
require 'minitest/autorun'
require_relative 'poker'

class PokerTest < Minitest::Test
<% json["cases"].each do |cases| %>
def test_<%= underscore(cases["description"]) %>
<%= skip? %>
hands = [<%= cases["input"]["hands"].map{ |hand| "%w[#{hand}]"}.join(", ") %>]
actual = Poker.new(hands).best_hand
expected = [<%= cases["expected"].map{ |hand| "%w[#{hand}]"}.join(", ") %>]
assert_equal expected, actual
end
<% end %>
end
Loading