You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
advent-of-code/2017/ruby/day_04.rb

25 lines
522 B

class Passphrase
def initialize(raw)
@raw = raw
end
def valid?
words = @raw.split(/\s+/)
words.uniq.size == words.size
end
end
# require "minitest/autorun"
if $0 == __FILE__
p ARGF.read.split("\n").map {|line| Passphrase.new(line) }.select(&:valid?).size
end
require "minitest"
class TestPassphrase < Minitest::Test
def test_valid
assert Passphrase.new("aa bb cc dd ee").valid?
refute Passphrase.new("aa bb cc dd aa").valid?
assert Passphrase.new("aa bb cc dd aaa").valid?
end
end