テスト レビューでは、MemoryStream
常に「スムーズな」結果が返されることが示されました。つまり、200 バイトをMemoryStream
400 バイトの作業バッファに読み込む場合、正確に 1 回の呼び出しで正確に 200 バイトが返されます。4000 バイトを 200 バイトの作業バッファーに読み込むと、常に正確に 200 バイトずつ正確に 20 回繰り返されます。
問題は、MemoryStream
can (現実の世界ではコーナー ケース) が遅いストリーム ソース (ネットワークやファイルなど) を表していることです。そのため、読み取りは決定論的にスムーズではない可能性があります。すべてのRead
操作が非決定論的な読み取りバイト数を返す可能性があります (例: 8、1、105、20、5、80 ...)。
MemoryStream
それで、バニラを(より良い言葉がないため)ChaosStream
読み取るバイト数が 1 と読み取り要求の間の乱数であるa に変える良い方法は何count
ですか? (0 はストリームの終わりを意味することに注意してください)。バイト自体は基礎となるバイトである必要があり、テスト範囲を拡大するためにランダム性/ジッターを使用して読み取るだけです。