PBTのgenerator
ランダムに値を生成する関数群
自作の方針
resize
異なる値に対して相対的なサイズの値を生成したり
e.g. nameとbioをstringで生成するときにbioのほうが長くなって欲しい
transform
generatorの生成した値を自分で定義した構造に変換する
code:ts
const soreted = () => {
return fc.array(fc.integer()).map((n) => n.sort((a, b) => a - b));
};
constraint
e.g. nonempty, even, odd
code:ts
fc.integer().filter((n) => n % 2 === 1);
fc.integer() * 2 + 1
確率を変更する
oneofとか
code:ts
fc.oneof({ arbitrary: fc.char(), weight: 5 }, { arbitrary: fc.boolean(), weight: 2 });
frequency
確率を指定して何の値を生成するかを指定できる
recursive
前回の実行の結果を持ち続ける
e.g. それまでに通った経路を横切らないような経路を生成する