Skip to content

Instantly share code, notes, and snippets.

@katiebuilds
Created February 10, 2015 14:20
Show Gist options
  • Save katiebuilds/2e0fe40de62ea0552790 to your computer and use it in GitHub Desktop.
Save katiebuilds/2e0fe40de62ea0552790 to your computer and use it in GitHub Desktop.
require 'minitest/autorun'
require 'minitest/pride'
# Write two methods:
#
# * `first_name`: given a name in string, return the first name.
# * `last_name`: given a name in string, return the last name.
# WRITE YOUR CODE HERE.
def first_name(name)
if name == ""
name
elsif name == nil || name.split.length == 1
name = ""
elsif name.split.length == 3
n = name.split
n[0] + " " + n[1]
else
n = name.split
n.first
end
end
def last_name(name)
if name == nil
name = ""
else
if name == "" || name.split.length == 1
name
else
n = name.split
n.last
end
end
end
class StringQuiz < MiniTest::Test
def test_first_name
assert_equal "Mason", first_name("Mason Matthews")
end
def test_last_name
assert_equal "Matthews", last_name("Mason Matthews")
end
def test_one_word_name
assert_equal "", first_name("deadmou5")
assert_equal "deadmou5", last_name("deadmou5")
end
def test_three_word_name
assert_equal "John Quincy", first_name("John Quincy Adams")
assert_equal "Adams", last_name("John Quincy Adams")
end
def test_no_word_name
assert_equal "", first_name("")
assert_equal "", last_name("")
end
def test_nil_name
assert_equal "", first_name(nil)
assert_equal "", last_name(nil)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment