!Mac OS X-10.15.7 !ruby-2.7.1p83
assert_equal
equalかどうかを判定する関数を書いてみる
def assert_equal(expected, result)
return expected == result
end
p assert_equal(1,1)
p assert_equal(1,2)
実行結果
$ ruby assert_equal.rb
true
false
Colorize
出力に色を付けてみることができる
require 'colorize'
def assert_equal(expected, result)
if expected == result
puts 'true'.green
else
puts 'false'.red
end
end
assert_equal(1,1)
assert_equal(1,2)
実行結果
$ ruby assert_equal.rb
true
false
trueが赤色に,falseが緑色に出力される
richな出力
1)引数でとってきた,expectedとresultの値を表示する
2)true、false時のメッセージを出す
を実現する
require 'colorize'
require 'colorize'
def assert_equal(expected, result)
puts "expected: #{expected}"
puts "result: #{result}"
if expected == result
puts "succeeded in #{__method__}.\n".green
else
puts "failed in #{__method__}.\n".red
end
end
assert_equal(1, 1)
assert_equal(1, 2)
関数の整理
重複している処理は整理
require 'colorize'
def assert_data_print(expected, result)
puts "expected: #{expected}"
puts "result: #{result}"
end
def assert_result_print(is_success, method_name)
if is_success
puts "succeeded in #{method_name}.\n".green
else
puts "failed in #{method_name}.\n".red
end
end
def assert_equal(expected, result)
assert_data_print(expected, result)
assert_result_print(expected == result, __method__)
end
def assert_not_equal(expected, result)
assert_data_print(expected, result)
assert_result_print(expected != result, __method__)
end
assert_equal(1, 1)
assert_equal(1, 2)
assert_not_equal(1, 1)
assert_not_equal(1, 2)
重複実行の予防
if $PROGRAM_NAME == __FILE__
assert_equal(1, 1)
assert_equal(1, 2)
assert_not_equal(1, 2)
assert_not_equal(1, 1)
end
のようにする
codeが書いてあるファイル名(FILE)が,動いているファイル名($PROGRAM_NAME)と一致するかを確認することで、requireの時はこの中身が実行されないようにできる
Rubular
文字情報を取り出す便利ツールな正規表現
- source ~/grad_members_20f/members/wjswnsrud12/memo9.org