github.com/kiali/kiali@v1.84.0/graph/config/cytoscape/cytoscape_test.go (about) 1 package cytoscape 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "github.com/kiali/kiali/graph" 9 ) 10 11 func TestRateStrings(t *testing.T) { 12 assert := assert.New(t) 13 14 assert.Equal(1, calcPrecision(0.1, 5)) 15 assert.Equal(1, calcPrecision(0.4, 5)) 16 assert.Equal(1, calcPrecision(0.5, 5)) 17 assert.Equal(1, calcPrecision(0.9, 5)) 18 assert.Equal(2, calcPrecision(0.01, 5)) 19 assert.Equal(2, calcPrecision(0.04, 5)) 20 assert.Equal(2, calcPrecision(0.05, 5)) 21 assert.Equal(2, calcPrecision(0.09, 5)) 22 assert.Equal(3, calcPrecision(0.001, 5)) 23 assert.Equal(3, calcPrecision(0.004, 5)) 24 assert.Equal(3, calcPrecision(0.005, 5)) 25 assert.Equal(3, calcPrecision(0.009, 5)) 26 assert.Equal(4, calcPrecision(0.0001, 5)) 27 assert.Equal(4, calcPrecision(0.0004, 5)) 28 assert.Equal(4, calcPrecision(0.0005, 5)) 29 assert.Equal(4, calcPrecision(0.0009, 5)) 30 assert.Equal(1, calcPrecision(0.99, 5)) 31 assert.Equal(1, calcPrecision(0.999, 5)) 32 assert.Equal(5, calcPrecision(0.00000000001, 5)) // max precision 5 33 34 assert.Equal("10.0", rateToString(1, 10)) 35 assert.Equal("10.4", rateToString(1, 10.4)) 36 assert.Equal("10.5", rateToString(1, 10.49)) 37 assert.Equal("10.9", rateToString(1, 10.9)) 38 assert.Equal("11.0", rateToString(1, 10.99)) 39 assert.Equal("0.1", rateToString(1, 0.1)) 40 assert.Equal("0.1", rateToString(1, 0.14)) 41 assert.Equal("0.2", rateToString(1, 0.19)) 42 assert.Equal("0.9", rateToString(1, 0.9)) 43 assert.Equal("0.9", rateToString(1, 0.94)) 44 assert.Equal("1.0", rateToString(1, 0.99)) 45 assert.Equal("0.01", rateToString(1, 0.01)) 46 assert.Equal("0.01", rateToString(1, 0.014)) 47 assert.Equal("0.02", rateToString(1, 0.019)) 48 assert.Equal("0.0004", rateToString(1, 0.0004)) 49 assert.Equal("0.0004", rateToString(1, 0.00044)) 50 assert.Equal("0.0005", rateToString(1, 0.00049)) 51 52 assert.Equal("10.00", rateToString(2, 10)) 53 assert.Equal("10.40", rateToString(2, 10.4)) 54 assert.Equal("10.49", rateToString(2, 10.49)) 55 assert.Equal("10.49", rateToString(2, 10.491)) 56 assert.Equal("10.50", rateToString(2, 10.499)) 57 assert.Equal("10.90", rateToString(2, 10.9)) 58 assert.Equal("10.99", rateToString(2, 10.99)) 59 assert.Equal("11.00", rateToString(2, 10.999)) 60 assert.Equal("0.10", rateToString(2, 0.1)) 61 assert.Equal("0.14", rateToString(2, 0.14)) 62 assert.Equal("0.19", rateToString(2, 0.19)) 63 assert.Equal("0.19", rateToString(2, 0.194)) 64 assert.Equal("0.20", rateToString(2, 0.199)) 65 assert.Equal("0.90", rateToString(2, 0.9)) 66 assert.Equal("0.94", rateToString(2, 0.94)) 67 assert.Equal("0.99", rateToString(2, 0.99)) 68 assert.Equal("0.99", rateToString(2, 0.994)) 69 assert.Equal("1.00", rateToString(2, 0.999)) 70 assert.Equal("0.01", rateToString(2, 0.01)) 71 assert.Equal("0.01", rateToString(2, 0.014)) 72 assert.Equal("0.02", rateToString(2, 0.019)) 73 assert.Equal("0.001", rateToString(2, 0.001)) 74 assert.Equal("0.001", rateToString(2, 0.0014)) 75 assert.Equal("0.002", rateToString(2, 0.0019)) 76 assert.Equal("0.009", rateToString(2, 0.009)) 77 assert.Equal("0.009", rateToString(2, 0.0094)) 78 assert.Equal("0.010", rateToString(2, 0.0099)) 79 assert.Equal("0.0001", rateToString(2, 0.0001)) 80 assert.Equal("0.0001", rateToString(2, 0.00014)) 81 assert.Equal("0.0002", rateToString(2, 0.00019)) 82 assert.Equal("0.0009", rateToString(2, 0.0009)) 83 assert.Equal("0.0009", rateToString(2, 0.00094)) 84 assert.Equal("0.0010", rateToString(2, 0.00099)) 85 } 86 87 func TestHasWorkloadEntryAddedToGraph(t *testing.T) { 88 assert := assert.New(t) 89 90 traffic := graph.NewTrafficMap() 91 92 n0, _ := graph.NewNode("testCluster", "appNamespace", "ratings", "appNamespace", "ratings-v1", "ratings", "v1", graph.GraphTypeVersionedApp) 93 n0.Metadata[graph.HasWorkloadEntry] = []graph.WEInfo{{Name: "ratings-v1"}} 94 traffic[n0.ID] = n0 95 cytoConfig := NewConfig(traffic, graph.ConfigOptions{}) 96 97 cytoNode := cytoConfig.Elements.Nodes[0] 98 assert.Equal(cytoNode.Data.HasWorkloadEntry, n0.Metadata[graph.HasWorkloadEntry]) 99 } 100 101 func TestHasWorkloadEntryEmpty(t *testing.T) { 102 assert := assert.New(t) 103 104 traffic := graph.NewTrafficMap() 105 106 n0, _ := graph.NewNode("testCluster", "appNamespace", "ratings", "appNamespace", "ratings-v1", "ratings", "v1", graph.GraphTypeVersionedApp) 107 traffic[n0.ID] = n0 108 cytoConfig := NewConfig(traffic, graph.ConfigOptions{}) 109 110 cytoNode := cytoConfig.Elements.Nodes[0] 111 assert.Empty(cytoNode.Data.HasWorkloadEntry) 112 } 113 114 func TestHTTPToTrafficRate(t *testing.T) { 115 assert := assert.New(t) 116 117 traffic := graph.NewTrafficMap() 118 119 svc, _ := graph.NewNode("testCluster", "appNamespace", "ratings", "appNamespace", "", "ratings", "", graph.GraphTypeVersionedApp) 120 traffic[svc.ID] = svc 121 122 v1, _ := graph.NewNode("testCluster", "appNamespace", "", "appNamespace", "ratings-v1", "ratings", "v1", graph.GraphTypeVersionedApp) 123 traffic[v1.ID] = v1 124 125 e := svc.AddEdge(v1) 126 e.Metadata[graph.HTTP.EdgeResponses] = graph.Responses{ 127 "200": &graph.ResponseDetail{ 128 Flags: graph.ResponseFlags{ 129 "-": 0.3333999999, 130 }, 131 Hosts: graph.ResponseHosts{ 132 svc.Service: 0.3333999999, 133 }, 134 }, 135 } 136 e.Metadata[graph.MetadataKey("http")] = 1.00 137 138 cytoConfig := NewConfig(traffic, graph.ConfigOptions{}) 139 140 cytoNode := cytoConfig.Elements.Edges[0] 141 assert.NotNil(cytoNode.Data.Traffic) 142 assert.NotNil(cytoNode.Data.Traffic.Rates) 143 }