scalacheckのcommandsパッケージをPersimmon.Driedに移植
ちったーを眺めていたら
というつぶやきが見え、そういえば干し柿にはまだ移植してなかったなーと気が付いたので、休日を使って実装してみました。
参考資料
http://scalacheck.org/files/scaladays2014/#1
これ読めばわかるはず。
干し柿での実装
他に方法が思いつかなかったので、クラスベースの実装になっています。
あと、Scalaの
trait Command { ... type Result ...
のような芸当はできないので、型パラメータで代用してます。
で、これと StructuredFormatDisplay
属性がオブジェクト式に対して働いてくれない(?)影響で BoxedCommad
という残念な型が一つできたわけです…。
実行速度は今のところ遅いです。 一部さぼっているところ*1を修正したら少しはマシになるかもしれませんが、体感はそんなにかわないのではないでしょうか。
Redis のサンプルはそのうち移植したいところですね。
おわりに
機能は充実してきた干し柿さん、いったいどこへ向かうやら…まぁ、その前に Arbitrary インスタンスを増やさないといけないのですががが。
あと Persimmon 本体の進捗はありません、すみません…orz
*1:主にList.revして~してList.revする、というさぼり