Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / github.com / google / go-cmp@v0.5.1 / cmp / internal / teststructs / project2.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/github.com/google/go-cmp@v0.5.1/cmp/internal/teststructs/project2.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/github.com/google/go-cmp@v0.5.1/cmp/internal/teststructs/project2.go
new file mode 100644 (file)
index 0000000..536592b
--- /dev/null
@@ -0,0 +1,74 @@
+// Copyright 2017, The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE.md file.
+
+package teststructs
+
+import (
+       "time"
+
+       pb "github.com/google/go-cmp/cmp/internal/testprotos"
+)
+
+// This is an sanitized example of equality from a real use-case.
+// The original equality function was as follows:
+/*
+func equalBatch(b1, b2 *GermBatch) bool {
+       for _, b := range []*GermBatch{b1, b2} {
+               for _, l := range b.DirtyGerms {
+                       sort.Slice(l, func(i, j int) bool { return l[i].String() < l[j].String() })
+               }
+               for _, l := range b.CleanGerms {
+                       sort.Slice(l, func(i, j int) bool { return l[i].String() < l[j].String() })
+               }
+       }
+       if !pb.DeepEqual(b1.DirtyGerms, b2.DirtyGerms) ||
+               !pb.DeepEqual(b1.CleanGerms, b2.CleanGerms) ||
+               !pb.DeepEqual(b1.GermMap, b2.GermMap) {
+               return false
+       }
+       if len(b1.DishMap) != len(b2.DishMap) {
+               return false
+       }
+       for id := range b1.DishMap {
+               kpb1, err1 := b1.DishMap[id].Proto()
+               kpb2, err2 := b2.DishMap[id].Proto()
+               if !pb.Equal(kpb1, kpb2) || !reflect.DeepEqual(err1, err2) {
+                       return false
+               }
+       }
+       return b1.HasPreviousResult == b2.HasPreviousResult &&
+               b1.DirtyID == b2.DirtyID &&
+               b1.CleanID == b2.CleanID &&
+               b1.GermStrain == b2.GermStrain &&
+               b1.TotalDirtyGerms == b2.TotalDirtyGerms &&
+               b1.InfectedAt.Equal(b2.InfectedAt)
+}
+*/
+
+type GermBatch struct {
+       DirtyGerms, CleanGerms map[int32][]*pb.Germ
+       GermMap                map[int32]*pb.Germ
+       DishMap                map[int32]*Dish
+       HasPreviousResult      bool
+       DirtyID, CleanID       int32
+       GermStrain             int32
+       TotalDirtyGerms        int
+       InfectedAt             time.Time
+}
+
+type Dish struct {
+       pb  *pb.Dish
+       err error
+}
+
+func CreateDish(m *pb.Dish, err error) *Dish {
+       return &Dish{pb: m, err: err}
+}
+
+func (d *Dish) Proto() (*pb.Dish, error) {
+       if d.err != nil {
+               return nil, d.err
+       }
+       return d.pb, nil
+}