Andras Banki-Horvath
4 years ago
2 changed files with 75 additions and 61 deletions
@ -0,0 +1,68 @@
|
||||
package autopilot |
||||
|
||||
import ( |
||||
"testing" |
||||
|
||||
"github.com/btcsuite/btcd/btcec" |
||||
"github.com/btcsuite/btcutil" |
||||
"github.com/stretchr/testify/require" |
||||
) |
||||
|
||||
// testGraphDesc is a helper type to describe a test graph.
|
||||
type testGraphDesc struct { |
||||
nodes int |
||||
edges map[int][]int |
||||
} |
||||
|
||||
var centralityTestGraph = testGraphDesc{ |
||||
nodes: 9, |
||||
edges: map[int][]int{ |
||||
0: {1, 2, 3}, |
||||
1: {2}, |
||||
2: {3}, |
||||
3: {4, 5}, |
||||
4: {5, 6, 7}, |
||||
5: {6, 7}, |
||||
6: {7, 8}, |
||||
}, |
||||
} |
||||
|
||||
var testGraphCentrality = []float64{ |
||||
3.0, 0.0, 3.0, 15.0, 6.0, 6.0, 7.0, 0.0, 0.0, |
||||
} |
||||
|
||||
var normalizedTestGraphCentrality = []float64{ |
||||
0.2, 0.0, 0.2, 1.0, 0.4, 0.4, 7.0 / 15.0, 0.0, 0.0, |
||||
} |
||||
|
||||
// buildTestGraph builds a test graph from a passed graph desriptor.
|
||||
func buildTestGraph(t *testing.T, |
||||
graph testGraph, desc testGraphDesc) map[int]*btcec.PublicKey { |
||||
|
||||
nodes := make(map[int]*btcec.PublicKey) |
||||
|
||||
for i := 0; i < desc.nodes; i++ { |
||||
key, err := graph.addRandNode() |
||||
require.NoError(t, err, "cannot create random node") |
||||
|
||||
nodes[i] = key |
||||
} |
||||
|
||||
const chanCapacity = btcutil.SatoshiPerBitcoin |
||||
for u, neighbors := range desc.edges { |
||||
for _, v := range neighbors { |
||||
_, _, err := graph.addRandChannel( |
||||
nodes[u], nodes[v], chanCapacity, |
||||
) |
||||
require.NoError(t, err, |
||||
"unexpected error adding random channel", |
||||
) |
||||
if err != nil { |
||||
t.Fatalf("unexpected error adding"+ |
||||
"random channel: %v", err) |
||||
} |
||||
} |
||||
} |
||||
|
||||
return nodes |
||||
} |
Loading…
Reference in new issue