タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

testingとrustに関するYaSuYuKiのブックマーク (2)

  • 事前条件も事後条件もテストも全部 assert!() でいいの? まあ、いいんじゃないでしょうかという話

    事前条件も事後条件もテストも全部 assert!() でいいの? まあ、いいんじゃないでしょうかという話 Rustでは実行時表明とテスト表明の双方を同じ仕組み (panic機構) を用いて行います。 Rustを書くにあたって、この部分に違和感を覚えた人もいるのではないかと思います (多数派ではないと思いますが)。稿ではこの違和感について分析し、Rustではそれで問題ないと確認することを目指します。 ※割とフワッとした話に終始します Resultとpanic Rustではエラー処理の方法としてResultとpanicの2種類の方法を提供しています。これは大まかに以下のように使い分けられます。 プログラムが想定しなければいけないエラー (ユーザーが誤った入力を与えた場合や入出力エラーなど) はResultを使う。 プログラムが想定外の状態に陥った場合 (意図しない配列の境界外参照など) はp

    事前条件も事後条件もテストも全部 assert!() でいいの? まあ、いいんじゃないでしょうかという話
  • Prustiを使ってRustでプログラム検証をしよう

    導入に際し、ドキュメントに書いてないこととか色々あってつらかったため、軽くメモ代わりに投稿しておきます。 また、Prusti を使う最も簡単な方法は VSCode の拡張である Prusti-Assistant を使うことですが、Vimの使用を見越しコマンドだけで使えるようにアレコレ設定しました。 Prusti の紹介 プログラミングにおいて、関数に対してプログラマが明示的に制約を課すことはよくあります。 例えば、次のような単純な関数 max を考えます。 fn max(x: i32, y: i32) -> i32 { let result = if x > y { x } else { y }; result } さて、この関数は次のような性質を持つことが期待されます。 resultはx以上かつy以上 resultはxまたはy そういった情報は多くの場合ライブラリのドキュメントなどに書い

    Prustiを使ってRustでプログラム検証をしよう
  • 1