From 39fdd426d8e22fae7373b85fb61b270fabf42e71 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 09:15:35 +0530 Subject: [PATCH 1/8] add test for empty string --- lib/scrabble_score.rb | 5 +++++ spec/scrabble_score_spec.rb | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/scrabble_score.rb b/lib/scrabble_score.rb index e69de29..062ee64 100644 --- a/lib/scrabble_score.rb +++ b/lib/scrabble_score.rb @@ -0,0 +1,5 @@ +class ScrabbleScore + def self.scrabble_test(string) + 0 + end +end \ No newline at end of file diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index e69de29..86a740e 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -0,0 +1,8 @@ +require "scrabble_score" +describe ScrabbleScore do + describe ".scrabble_test" + context "given an empty string" + it "returns 0" do + expect(ScrabbleScore.scrabble_test("")).to eql(0) + end +end \ No newline at end of file From 2743787e9553546402237aba4d1038f11dc8db8c Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 09:20:05 +0530 Subject: [PATCH 2/8] add test for space --- spec/scrabble_score_spec.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index 86a740e..9701c62 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -5,4 +5,10 @@ it "returns 0" do expect(ScrabbleScore.scrabble_test("")).to eql(0) end + + context "given a space" + it "returns 0" do + expect(ScrabbleScore.scrabble_test(" ")).to eql(0) + end + end \ No newline at end of file From 157e3e95d43ebb990bdb4c8520cfbce01e514a33 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 09:23:54 +0530 Subject: [PATCH 3/8] add test for nil --- spec/scrabble_score_spec.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index 9701c62..35afbd0 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -11,4 +11,8 @@ expect(ScrabbleScore.scrabble_test(" ")).to eql(0) end + context "given nil" + it "returns 0" do + expect(ScrabbleScore.scrabble_test(nil)).to eql(0) + end end \ No newline at end of file From c1f3faa7cd289178b23f26a23d21fc3ef78db936 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 09:40:00 +0530 Subject: [PATCH 4/8] add test for "a" --- lib/scrabble_score.rb | 6 +++++- spec/scrabble_score_spec.rb | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/scrabble_score.rb b/lib/scrabble_score.rb index 062ee64..a7f9e0d 100644 --- a/lib/scrabble_score.rb +++ b/lib/scrabble_score.rb @@ -1,5 +1,9 @@ class ScrabbleScore def self.scrabble_test(string) - 0 + if string == "a" + return 1 + else + 0 + end end end \ No newline at end of file diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index 35afbd0..4ba79e7 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -15,4 +15,9 @@ it "returns 0" do expect(ScrabbleScore.scrabble_test(nil)).to eql(0) end + + context "given \"a\"" + it "returns 1" do + expect(ScrabbleScore.scrabble_test("a")).to eql(1) + end end \ No newline at end of file From 1ab559dedba2ce51cadbf3b8fdf0f41c919c6d60 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 09:44:29 +0530 Subject: [PATCH 5/8] add test for "f" --- lib/scrabble_score.rb | 6 ++++-- spec/scrabble_score_spec.rb | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/scrabble_score.rb b/lib/scrabble_score.rb index a7f9e0d..c4bda7c 100644 --- a/lib/scrabble_score.rb +++ b/lib/scrabble_score.rb @@ -1,8 +1,10 @@ class ScrabbleScore def self.scrabble_test(string) if string == "a" - return 1 - else + 1 + elsif string == "f" + 4 + else 0 end end diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index 4ba79e7..50d46c2 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -20,4 +20,9 @@ it "returns 1" do expect(ScrabbleScore.scrabble_test("a")).to eql(1) end + + context "given \"f\"" + it "returns 4" do + expect(ScrabbleScore.scrabble_test("f")).to eql(4) + end end \ No newline at end of file From 7f958d3cfa144e6fbdf8f4faedb5e446b8075401 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 09:50:49 +0530 Subject: [PATCH 6/8] add test for "street" --- lib/scrabble_score.rb | 4 +++- spec/scrabble_score_spec.rb | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/scrabble_score.rb b/lib/scrabble_score.rb index c4bda7c..617d594 100644 --- a/lib/scrabble_score.rb +++ b/lib/scrabble_score.rb @@ -1,6 +1,8 @@ class ScrabbleScore def self.scrabble_test(string) - if string == "a" + if string == "street" + 6 + elsif string == "a" 1 elsif string == "f" 4 diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index 50d46c2..ac85b62 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -25,4 +25,9 @@ it "returns 4" do expect(ScrabbleScore.scrabble_test("f")).to eql(4) end + + context "given \"street\"" + it "returns 6" do + expect(ScrabbleScore.scrabble_test("street")).to eql(6) + end end \ No newline at end of file From b9a91e21d387a4ef1a2b0df0f0f9692917ac1979 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 10:03:28 +0530 Subject: [PATCH 7/8] add test for case sensitive string --- lib/scrabble_score.rb | 16 ++++++++++++---- spec/scrabble_score_spec.rb | 5 +++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/scrabble_score.rb b/lib/scrabble_score.rb index 617d594..46379ba 100644 --- a/lib/scrabble_score.rb +++ b/lib/scrabble_score.rb @@ -1,13 +1,21 @@ class ScrabbleScore def self.scrabble_test(string) - if string == "street" - 6 - elsif string == "a" - 1 + if string == nil + 0 + else + string=string.downcase + if string == "oxyphenbutazone" + 41 + elsif string == "street" + 6 + elsif string == "a" + 1 elsif string == "f" 4 else 0 end + end + end end \ No newline at end of file diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index ac85b62..0fab780 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -30,4 +30,9 @@ it "returns 6" do expect(ScrabbleScore.scrabble_test("street")).to eql(6) end + + context "given \"OXYPHENBUTAZONE\"" + it "returns 41" do + expect(ScrabbleScore.scrabble_test("OXYPHENBUTAZONE")).to eql(41) + end end \ No newline at end of file From 1339dff2ba95799d1ae6950d84ac06b702a7e3f5 Mon Sep 17 00:00:00 2001 From: Abhishek Katiyar Date: Fri, 11 Jan 2019 10:36:50 +0530 Subject: [PATCH 8/8] add test for convenient scoring --- lib/scrabble_score.rb | 28 +++++++++++++++------------- spec/scrabble_score_spec.rb | 5 +++++ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/scrabble_score.rb b/lib/scrabble_score.rb index 46379ba..07065d7 100644 --- a/lib/scrabble_score.rb +++ b/lib/scrabble_score.rb @@ -3,19 +3,21 @@ def self.scrabble_test(string) if string == nil 0 else - string=string.downcase - if string == "oxyphenbutazone" - 41 - elsif string == "street" - 6 - elsif string == "a" - 1 - elsif string == "f" - 4 - else - 0 + string =string.downcase + letter_score={ + /[aeioulnrst]/ => 1, + /[dg]/ => 2, + /[bcmp]/ => 3, + /[fhvmy]/ => 4, + /[k]/ => 5, + /[jx]/ => 8, + /[qz]/ => 10 + } + word_score = 0 + letter_score.each do |letter , value| + word_score += string.scan(letter).count * value end - end - + word_score + end end end \ No newline at end of file diff --git a/spec/scrabble_score_spec.rb b/spec/scrabble_score_spec.rb index 0fab780..453aa2b 100644 --- a/spec/scrabble_score_spec.rb +++ b/spec/scrabble_score_spec.rb @@ -35,4 +35,9 @@ it "returns 41" do expect(ScrabbleScore.scrabble_test("OXYPHENBUTAZONE")).to eql(41) end + + context "given \"alarcity\"" + it "returns 13" do + expect(ScrabbleScore.scrabble_test("alarcity")).to eql(13) + end end \ No newline at end of file