Skip to content

Commit

Permalink
completed acronym exercise and resistor exercise
Browse files Browse the repository at this point in the history
  • Loading branch information
pawgrmr committed Sep 17, 2019
0 parents commit 5ca0e9a
Show file tree
Hide file tree
Showing 8 changed files with 189 additions and 0 deletions.
1 change: 1 addition & 0 deletions acronym-2/.exercism/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"track":"ruby","exercise":"acronym","id":"e234b81dd16b4b3a871de1f0157d0958","url":"https://exercism.io/my/solutions/e234b81dd16b4b3a871de1f0157d0958","handle":"pawgrmr","is_requester":true,"auto_approve":false}
38 changes: 38 additions & 0 deletions acronym-2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Acronym

Convert a phrase to its acronym.

Techies love their TLA (Three Letter Acronyms)!

Help generate some jargon by writing a program that converts a long name
like Portable Network Graphics to its acronym (PNG).

* * * *

For installation and learning resources, refer to the
[Ruby resources page](http://exercism.io/languages/ruby/resources).

For running the tests provided, you will need the Minitest gem. Open a
terminal window and run the following command to install minitest:

gem install minitest

If you would like color output, you can `require 'minitest/pride'` in
the test file, or note the alternative instruction, below, for running
the test file.

Run the tests from the exercise directory using the following command:

ruby acronym_test.rb

To include color from the command line:

ruby -r minitest/pride acronym_test.rb


## Source

Julien Vanier [https://github.com/monkbroc](https://github.com/monkbroc)

## Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
11 changes: 11 additions & 0 deletions acronym-2/acronym.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
class Acronym

def self.abbreviate(args)
#loop through the string
#convert string to array of arrays
#print out the first letter of each array
#join array of first letters into a single string
args.scan(/\b\w/).join.upcase
end
end

40 changes: 40 additions & 0 deletions acronym-2/acronym_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
require 'minitest/autorun'
require_relative 'acronym'

# Common test data version: 1.5.0 787d24e
class AcronymTest < Minitest::Test
def test_basic
# skip
assert_equal "PNG", Acronym.abbreviate('Portable Network Graphics')
end

def test_lowercase_words
# skip
assert_equal "ROR", Acronym.abbreviate('Ruby on Rails')
end

def test_punctuation
#skip
assert_equal "FIFO", Acronym.abbreviate('First In, First Out')
end

def test_all_caps_word
#skip
assert_equal "GIMP", Acronym.abbreviate('GNU Image Manipulation Program')
end

def test_punctuation_without_whitespace
#skip
assert_equal "CMOS", Acronym.abbreviate('Complementary metal-oxide semiconductor')
end

def test_very_long_abbreviation
#skip
assert_equal "ROTFLSHTMDCOALM", Acronym.abbreviate('Rolling On The Floor Laughing So Hard That My Dogs Came Over And Licked Me')
end

def test_consecutive_delimiters
#skip
assert_equal "SIMUFTA", Acronym.abbreviate('Something - I made up from thin air')
end
end
1 change: 1 addition & 0 deletions resistor-color-duo/.exercism/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"track":"ruby","exercise":"resistor-color-duo","id":"2d2efe85bbbe4d558154b35514c76089","url":"https://exercism.io/my/solutions/2d2efe85bbbe4d558154b35514c76089","handle":"pawgrmr","is_requester":true,"auto_approve":false}
47 changes: 47 additions & 0 deletions resistor-color-duo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Resistor Color Duo

If you want to build something using a Raspberry Pi, you'll probably use _resistors_. For this exercise, you need to know two things about them:

* Each resistor has a resistance value.
* Resistors are small - so small in fact that if you printed the resistance value on them, it would be hard to read.
To get around this problem, manufacturers print color-coded bands onto the resistors to denote their resistance values. Each band has a position and a numeric value. For example, if they printed a brown band (value 1) followed by a green band (value 5), it would translate to the number 15.

In this exercise you are going to create a helpful program so that you don't have to remember the values of the bands. The program will take color names as input and output a two digit number, even if the input is more than two colors!

The colors are mapped to the numbers from 0 to 9 in the sequence:
Black - Brown - Red - Orange - Yellow - Green - Blue - Violet - Grey - White

From the example above:
brown-green should return 15
brown-green-violet should return 15 too, ignoring the third color.


* * * *

For installation and learning resources, refer to the
[Ruby resources page](http://exercism.io/languages/ruby/resources).

For running the tests provided, you will need the Minitest gem. Open a
terminal window and run the following command to install minitest:

gem install minitest

If you would like color output, you can `require 'minitest/pride'` in
the test file, or note the alternative instruction, below, for running
the test file.

Run the tests from the exercise directory using the following command:

ruby resistor_color_duo_test.rb

To include color from the command line:

ruby -r minitest/pride resistor_color_duo_test.rb


## Source

Maud de Vries, Erik Schierboom [https://github.com/exercism/problem-specifications/issues/1464](https://github.com/exercism/problem-specifications/issues/1464)

## Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
21 changes: 21 additions & 0 deletions resistor-color-duo/resistor_color_duo.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
class ResistorColorDuo

WIRES = [
'black',
'brown',
'red',
'orange',
'yellow',
'green',
'blue',
'violet',
'grey',
'white'
]

def self.value(args)
result = args.map{|arg| WIRES.index(arg)}
p result.take(2).join.to_i
end
end

30 changes: 30 additions & 0 deletions resistor-color-duo/resistor_color_duo_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
require 'minitest/autorun'
require_relative 'resistor_color_duo'

# Common test data version: 2.1.0 00dda3a
class ResistorColorDuoTest < Minitest::Test
def test_brown_and_black
# skip
assert_equal 10, ResistorColorDuo.value(["brown", "black"])
end

def test_blue_and_grey
#skip
assert_equal 68, ResistorColorDuo.value(["blue", "grey"])
end

def test_yellow_and_violet
#skip
assert_equal 47, ResistorColorDuo.value(["yellow", "violet"])
end

def test_orange_and_orange
#skip
assert_equal 33, ResistorColorDuo.value(["orange", "orange"])
end

def test_ignore_additional_colors
#skip
assert_equal 51, ResistorColorDuo.value(["green", "brown", "orange"])
end
end

0 comments on commit 5ca0e9a

Please sign in to comment.