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  }