Skip to content

Instantly share code, notes, and snippets.

@briankung
Last active June 10, 2025 02:22
Show Gist options
  • Save briankung/0369cf1dbe6bcec8267b8b4a092f30e8 to your computer and use it in GitHub Desktop.
Save briankung/0369cf1dbe6bcec8267b8b4a092f30e8 to your computer and use it in GitHub Desktop.
require "minitest/autorun"
TRAFFIC_TRANSITIONS = {
"red" => "green",
"green" => "yellow",
"yellow" => "red",
}
def is_valid_traffic_sequence(sequence)
sequence.each_cons(2) do |before, after|
return false if after != TRAFFIC_TRANSITIONS[before]
end
true
end
class TestTransitions < Minitest::Test
def test_valid = assert is_valid_traffic_sequence(["red", "green", "yellow", "red", "green"])
def test_invalid = refute is_valid_traffic_sequence(["red", "yellow", "green"]);
def test_empty = assert is_valid_traffic_sequence([])
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment