+func TestMTHSeqAndFatEqual(t *testing.T) {
+ xof := blake3.New(32, nil).XOF()
+ f := func(size uint32, offset uint32) bool {
+ size %= 10 * 1024 * 1024
+ data := make([]byte, int(size), int(size)+1)
+ if _, err := io.ReadFull(xof, data); err != nil {
+ panic(err)
+ }
+ fat := MTHFatNew()
+ if _, err := io.Copy(fat, bytes.NewReader(data)); err != nil {
+ panic(err)
+ }
+ hshFat := fat.Sum(nil)
+ seq := MTHSeqNew(int64(size), 0)
+ if _, err := io.Copy(seq, bytes.NewReader(data)); err != nil {
+ panic(err)
+ }
+ return bytes.Compare(hshFat, seq.Sum(nil)) == 0
+ }
+ if err := quick.Check(f, nil); err != nil {
+ t.Error(err)
+ }
+}
+