gorgonia.org/gorgonia@v0.9.17/formatter_test.go (about) 1 package gorgonia 2 3 import ( 4 "fmt" 5 "testing" 6 ) 7 8 func TestMapFormat(t *testing.T) { 9 10 g := NewGraph() 11 x := NewVector(g, Float64, WithName("x")) 12 y := NewScalar(g, Float64, WithName("y")) 13 14 m := make(map[*Node]string) 15 m[x] = "x" 16 m[y] = "y" 17 18 s := fmt.Sprintf("%-#v", FmtNodeMap(m)) 19 expected0 := fmt.Sprintf("map[Node.ID]string {\n\t%x: x\n\t%x: y\n}", x.ID(), y.ID()) 20 expected1 := fmt.Sprintf("map[Node.ID]string {\n\t%x: y\n\t%x: x\n}", y.ID(), x.ID()) 21 if s != expected0 && s != expected1 { 22 t.Errorf("Case 1 failed. Got \n%v", s) 23 } 24 25 m2 := make(map[*Node]*Node) 26 m2[x] = x 27 m2[y] = y 28 29 // s = fmt.Sprintf("%+#v", FmtNodeMap(m2)) 30 // expected0 = fmt.Sprintf("map[Node.ID]*gorgonia.Node {\n\t%x: x :: Vector float64\n\t%x: y :: float64\n}", x.ID(), y.ID()) 31 // expected1 = fmt.Sprintf("map[Node.ID]*gorgonia.Node {\n\t%x: y :: float64\n\t%x: x :: Vector float64\n}", y.ID(), x.ID()) 32 // if s != expected0 && s != expected1 { 33 // t.Errorf("Case 2 failed. Expected : %q. Got %q instead", expected0, s) 34 // } 35 36 s = fmt.Sprintf("%#-d", FmtNodeMap(m2)) 37 expected0 = fmt.Sprintf("map[Node.ID]*gorgonia.Node {\n\t%x: %x\n\t%x: %x\n}", x.ID(), x.ID(), y.ID(), y.ID()) 38 expected1 = fmt.Sprintf("map[Node.ID]*gorgonia.Node {\n\t%x: %x\n\t%x: %x\n}", y.ID(), y.ID(), x.ID(), x.ID()) 39 if s != expected0 && s != expected1 { 40 t.Errorf("Case 3 failed") 41 } 42 43 m3 := make(map[*Node]Nodes) 44 m3[x] = Nodes{x, y} 45 s = fmt.Sprintf("%-v", FmtNodeMap(m3)) 46 expected0 = fmt.Sprintf("map[Node.Name]gorgonia.Nodes {\n\tx :: Vector float64: [x, y]\n}") 47 if s != expected0 { 48 t.Errorf("Case 4 failed. Expected : %q. Got %q instead", expected0, s) 49 } 50 51 /* TODO: COME BACK TO THIS 52 53 s = fmt.Sprintf("%#-d", FmtNodeMap(m3)) 54 expected0 = fmt.Sprintf("map[Node.ID]gorgonia.Nodes {\n\t%x: [%x, %x]\n}", x.ID(), x.ID(), y.ID()) 55 if s != expected0 { 56 t.Errorf("Case 5 failed. Got %q instead of %q", s, expected0) 57 } 58 */ 59 }