fork download
  1. require 'test/unit'
  2.  
  3. def function (Score)
  4. attr_reader :score1
  5. attr_reader :score2
  6.  
  7. attr_reader :draw
  8. attr_reader :win1
  9. attr_reader :win2
  10.  
  11. def initialize(score1 = nil, score2 = nil)
  12. @score1, @score2 = score1, score2
  13.  
  14. @draw = score1 == score2
  15. @win2 = !@win1 = score1 > score2
  16. end
  17.  
  18. def compare(score)
  19. if score.score1 == @score1 && score.score2 == @score2
  20. 2
  21. elsif (score.draw && @draw) || (score.win1 == @win1 && score.win2 == @win2)
  22. 1
  23. else
  24. 0
  25. end
  26. end
  27. end
  28.  
  29. def function (ScoreTest < Test::Unit::TestCase)
  30. def test_exact_score
  31. user_score = Score.new(4,1)
  32. sys_score = Score.new(4,1)
  33.  
  34. assert_equal(2, user_score.compare(sys_score))
  35. end
  36.  
  37. def test_draw
  38. user_score = Score.new(2,2)
  39. sys_score = Score.new(1,1)
  40.  
  41. assert_equal(1, user_score.compare(sys_score))
  42. end
  43.  
  44. def test_win_team
  45. user_score = Score.new(4,1)
  46. sys_score = Score.new(5,1)
  47.  
  48. assert_equal(1, user_score.compare(sys_score))
  49. end
  50.  
  51. def test_lose
  52. user_score = Score.new(3,1)
  53. sys_score = Score.new(5,7)
  54.  
  55. assert_equal(0, user_score.compare(sys_score))
  56. end
  57. end
Runtime error #stdin #stdout #stderr 0.05s 9616KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
prog.rb:3: formal argument cannot be a constant
def function (Score)
                   ^
prog.rb:29: formal argument cannot be a constant
def function (ScoreTest < Test::Unit::TestCase)
                       ^
prog.rb:29: syntax error, unexpected '<', expecting ')'
def function (ScoreTest < Test::Unit::TestCase)
                         ^
prog.rb:29: syntax error, unexpected ')', expecting end-of-input