Guest User

Untitled

a guest
Feb 19th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. require 'prime'
  2. require 'minitest/autorun'
  3.  
  4. class Anagram
  5. LETTER_MAP = ('a'..'z').zip(Prime.each).to_h
  6.  
  7. def self.anagram?(word_1, word_2)
  8. word_hash(word_1) == word_hash(word_2)
  9. end
  10.  
  11. def self.word_hash(word)
  12. word.chars
  13. .map {|w| LETTER_MAP[w]}
  14. .reduce(:*)
  15. end
  16. end
  17.  
  18. describe Anagram do
  19. describe 'anagram?' do
  20. it 'returns true when two words are anagrams' do
  21. assert Anagram.anagram?('amor', 'roma')
  22. assert Anagram.anagram?('pai', 'pia')
  23. assert Anagram.anagram?('seu', 'use')
  24. assert Anagram.anagram?('alfa', 'fala')
  25. end
  26.  
  27. it 'returns false when two words are not anagrams' do
  28. refute Anagram.anagram?('amor', 'rome')
  29. refute Anagram.anagram?('pai', 'piaa')
  30. refute Anagram.anagram?('seu', 'usse')
  31. refute Anagram.anagram?('alfa', 'fafa')
  32. end
  33. end
  34. end
Add Comment
Please, Sign In to add comment