func TestChunkUpdate(t *testing.T) { tick := message.Tick(42) blk := message.NewBlock() for i := 0; i < 10; i++ { blk.Points[10][5+i] = 1 } for i := 0; i < 7; i++ { blk.Points[20+i][10] = 2 } testMessage(t, message.Types["chunk_update"], func(w io.Writer) error { return builder.SendChunkUpdate(w, tick, blk) }, func(conn *message.Conn, t *testing.T) { rt, rblk := handler.ReadChunkUpdate(conn) if rt != tick { t.Fatal("Sent tick", tick, "but received", rt) } for i := range blk.Points { for j := range blk.Points[i] { pt := blk.Points[i][j] rpt := rblk.Points[i][j] if rpt != pt { t.Fatal("Sent point", pt, " at ", i, j, "but received", rpt) } } } }) }
func TestChunksUpdate(t *testing.T) { tick := message.Tick(42) blk1 := message.NewBlock() for i := 0; i < 10; i++ { blk1.Points[10][5+i] = 1 } for i := 0; i < 7; i++ { blk1.Points[20+i][10] = 2 } blk2 := message.NewBlock() blk2.Fill(1) blk2.Points[10][5] = 0 blk2.Points[7][21] = 2 blks := []*message.Block{blk1, blk2} testMessage(t, message.Types["chunks_update"], func(w io.Writer) error { return builder.SendChunksUpdate(w, tick, blks) }, func(conn *message.Conn, t *testing.T) { rt, rblks := handler.ReadChunksUpdate(conn) if rt != tick { t.Fatal("Sent tick", tick, "but received", rt) } if len(rblks) != len(blks) { t.Fatal("Sent", len(blks), "blocks, but received", len(rblks)) } for k, blk := range blks { rblk := rblks[k] for i := range blk.Points { for j := range blk.Points[i] { pt := blk.Points[i][j] rpt := rblk.Points[i][j] if rpt != pt { t.Fatal("Sent point", pt, " at ", i, j, "in block", k, "but received", rpt) } } } } }) }