2018-10-17 20:50:27 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"flag"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/divan/graphx/formats"
|
|
|
|
"github.com/status-im/simulation/propagation"
|
|
|
|
"github.com/status-im/simulation/stats"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
var (
|
|
|
|
network = flag.String("n", "network.json", "Input filename for network graph data")
|
|
|
|
plogFile = flag.String("p", "propagation.json", "Input filename for propagation log data")
|
|
|
|
)
|
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
data, err := formats.FromD3JSON(*network)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal("Opening network file failed: ", err)
|
|
|
|
}
|
|
|
|
log.Printf("Loaded network graph from %s file", *network)
|
|
|
|
|
|
|
|
fd, err := os.Open(*plogFile)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal("Opening propagation file failed: ", err)
|
|
|
|
}
|
|
|
|
defer fd.Close()
|
|
|
|
log.Printf("Loaded propagation log from %s file", *plogFile)
|
|
|
|
|
|
|
|
plog := &propagation.Log{}
|
|
|
|
err = json.NewDecoder(fd).Decode(&plog)
|
|
|
|
if err != nil {
|
2018-10-24 05:43:18 +00:00
|
|
|
log.Fatalf("Parsing propagation log failed: %v", err)
|
2018-10-17 20:50:27 +00:00
|
|
|
}
|
|
|
|
|
2018-10-24 13:13:55 +00:00
|
|
|
ss := stats.Analyze(plog, data.NumNodes(), data.NumLinks())
|
2018-10-17 20:50:27 +00:00
|
|
|
ss.PrintVerbose()
|
|
|
|
}
|