LoginSignup
2
0

More than 3 years have passed since last update.

マルチスケールシミュレーション特論9

Last updated at Posted at 2020-11-25

!Mac OS X-10.15.7 !ruby-2.7.1p83

assert_equal

講義ページリンク

チャート式ruby-IV(assert_equal)

内容

テスト駆動開発において頻繁に使用するassert_equalを作成する

課題

2つの引数が等しいかどうかを出力するメソッドassert_equalの作成

解答例

#!/usr/bin/env ruby

require 'colorize'

def assert_equal(expected, result)
  puts "expected: #{expected}"
  puts "result: #{result}"
  if expected == result
    puts "succeeded in #{__method__}.".green
  else
    puts "failed in #{__method__}.".red
  end
end

def assert_not_equal(expected, result)
  puts "expected: #{expected}"
  puts "result: #{result}"
  if expected != result
    puts "succeeded in #{__method__}.".green
  else
    puts "failed in #{__method__}.".red
  end
end

assert_equal(1, 1)
assert_equal(1, 2)
assert_not_equal(1, 1)
assert_not_equal(1, 2)

出力

> ruby assert_equal.rb
expected: 1
result: 1
succeeded in assert_equal.
expected: 1
result: 2
failed in assert_equal.
expected: 1
result: 1
failed in assert_not_equal.
expected: 1
result: 2
succeeded in assert_not_equal.

successedのとこは緑で,failedのとこは赤で表示される

NOTE

  • 今回は使ってないが,小数を比較するときは .to_d を使う(using BigDecimal)
  • 関数内から関数名を取得するには __method__ を使う
  • テストの部分を if $PROGRAM_NAME == __FILE__内に入れることで,このassert_equalを外部から利用することができる
  • 前回orgmodeでincludeしたソースコードにシンタックスを適用する方法がわからなかったが,ソースコードに#+begin_src ruby#+end_src を書けばできた
    • あまりソースコードに書き込みたくないけど
    • また,シェバン(#!のやつ)がソースコードの上に出てくる
      • シェバンの上に#+を書いたらシェバンがコメント扱いされる
    • ちょっと気持ち悪いけど妥協する

  • source ~/multiscalesim_toku/grad_members_20f/members/lynd2299/mss9.org
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0