go-cmp にて、cmp.Option
を実装することでカスタムの比較処理を書くことができる。
cmpoptsパッケージ に実装例があるのでこちらを真似るとよい。
https://pkg.go.dev/github.com/google/go-cmp/cmp#Option
一部を紹介する。
Transformer
https://pkg.go.dev/github.com/google/go-cmp/cmp#Transformer
T型の値をR型に変換する。
例えば、float32のfieldをfloat64に変換するには以下のようにする
FilterValues
https://pkg.go.dev/github.com/google/go-cmp/cmp#FilterValues
filter func(T, T) bool
にマッチした場合にのみOptionを適用する。