require 'test/unit'
def function (Score)
attr_reader :score1
attr_reader :score2
attr_reader :draw
attr_reader :win1
attr_reader :win2
def initialize(score1 = nil, score2 = nil)
@score1, @score2 = score1, score2
@draw = score1 == score2
@win2 = !@win1 = score1 > score2
end
def compare(score)
if score.score1 == @score1 && score.score2 == @score2
2
elsif (score.draw && @draw) || (score.win1 == @win1 && score.win2 == @win2)
1
else
0
end
end
end
def function (ScoreTest < Test::Unit::TestCase)
def test_exact_score
user_score = Score.new(4,1)
sys_score = Score.new(4,1)
assert_equal(2, user_score.compare(sys_score))
end
def test_draw
user_score = Score.new(2,2)
sys_score = Score.new(1,1)
assert_equal(1, user_score.compare(sys_score))
end
def test_win_team
user_score = Score.new(4,1)
sys_score = Score.new(5,1)
assert_equal(1, user_score.compare(sys_score))
end
def test_lose
user_score = Score.new(3,1)
sys_score = Score.new(5,7)
assert_equal(0, user_score.compare(sys_score))
end
end
cmVxdWlyZSAndGVzdC91bml0JwogCmRlZiBmdW5jdGlvbiAoU2NvcmUpCiAgICBhdHRyX3JlYWRlciA6c2NvcmUxCiAgICBhdHRyX3JlYWRlciA6c2NvcmUyCiAKICAgIGF0dHJfcmVhZGVyIDpkcmF3CiAgICBhdHRyX3JlYWRlciA6d2luMQogICAgYXR0cl9yZWFkZXIgOndpbjIKIAogICAgZGVmIGluaXRpYWxpemUoc2NvcmUxID0gbmlsLCBzY29yZTIgPSBuaWwpCiAgICAgICAgQHNjb3JlMSwgQHNjb3JlMiA9IHNjb3JlMSwgc2NvcmUyCiAKICAgICAgICBAZHJhdyA9IHNjb3JlMSA9PSBzY29yZTIKICAgICAgICBAd2luMiA9ICFAd2luMSA9IHNjb3JlMSA+IHNjb3JlMgogICAgZW5kCiAKICAgIGRlZiBjb21wYXJlKHNjb3JlKQogICAgICAgIGlmIHNjb3JlLnNjb3JlMSA9PSBAc2NvcmUxICYmIHNjb3JlLnNjb3JlMiA9PSBAc2NvcmUyCiAgICAgICAgICAgIDIKICAgICAgICBlbHNpZiAoc2NvcmUuZHJhdyAmJiBAZHJhdykgfHwgKHNjb3JlLndpbjEgPT0gQHdpbjEgJiYgc2NvcmUud2luMiA9PSBAd2luMikKICAgICAgICAgICAgMQogICAgICAgIGVsc2UKICAgICAgICAgICAgMAogICAgICAgIGVuZAogICAgZW5kCmVuZAogCmRlZiBmdW5jdGlvbiAoU2NvcmVUZXN0IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UpCiAgICBkZWYgdGVzdF9leGFjdF9zY29yZQogICAgICAgIHVzZXJfc2NvcmUgPSBTY29yZS5uZXcoNCwxKQogICAgICAgIHN5c19zY29yZSA9IFNjb3JlLm5ldyg0LDEpCiAKICAgICAgICBhc3NlcnRfZXF1YWwoMiwgdXNlcl9zY29yZS5jb21wYXJlKHN5c19zY29yZSkpCiAgICBlbmQKIAogICAgZGVmIHRlc3RfZHJhdwogICAgICAgIHVzZXJfc2NvcmUgPSBTY29yZS5uZXcoMiwyKQogICAgICAgIHN5c19zY29yZSA9IFNjb3JlLm5ldygxLDEpCiAKICAgICAgICBhc3NlcnRfZXF1YWwoMSwgdXNlcl9zY29yZS5jb21wYXJlKHN5c19zY29yZSkpCiAgICBlbmQKIAogICAgZGVmIHRlc3Rfd2luX3RlYW0KICAgICAgICB1c2VyX3Njb3JlID0gU2NvcmUubmV3KDQsMSkKICAgICAgICBzeXNfc2NvcmUgPSBTY29yZS5uZXcoNSwxKQogCiAgICAgICAgYXNzZXJ0X2VxdWFsKDEsIHVzZXJfc2NvcmUuY29tcGFyZShzeXNfc2NvcmUpKQogICAgZW5kCiAKICAgIGRlZiB0ZXN0X2xvc2UKICAgICAgICB1c2VyX3Njb3JlID0gU2NvcmUubmV3KDMsMSkKICAgICAgICBzeXNfc2NvcmUgPSBTY29yZS5uZXcoNSw3KQogCiAgICAgICAgYXNzZXJ0X2VxdWFsKDAsIHVzZXJfc2NvcmUuY29tcGFyZShzeXNfc2NvcmUpKQogICAgZW5kCmVuZA==