code: func Evaluate(clients []*Client, truth [][]time.Duration) (stats Stats) {
  	nodes := len(clients)
  	count := 0
  	for i := 0; i < nodes; i++ {
  		for j := i + 1; j < nodes; j++ {
  			est := clients[i].DistanceTo(clients[j].GetCoordinate()).Seconds()
  			actual := truth[i][j].Seconds()
  			error := math.Abs(est-actual) / actual
  			stats.ErrorMax = math.Max(stats.ErrorMax, error)
  			stats.ErrorAvg += error
  			count += 1
  		}
  	}
  
  	stats.ErrorAvg /= float64(count)
  	fmt.Printf("Error avg=%9.6f max=%9.6f\n", stats.ErrorAvg, stats.ErrorMax)
  	return
  }
docs: // Evaluate uses the coordinates of the given clients to calculate estimated
  // distances and compares them with the given truth matrix, returning summary
  // stats.