コード例 #1
0
ファイル: main.go プロジェクト: jollheef/tin_foil_hat
func scoreboardShow(db *sql.DB) {
	res, err := scoreboard.CollectLastResult(db)
	if err != nil {
		log.Fatalln("Get last result fail:", err)
	}

	scoreboard.CountScoreAndSort(&res)

	table := tablewriter.NewWriter(os.Stdout)
	table.SetHeader([]string{"Rank", "Name", "Score", "Attack",
		"Defence", "Advisory"})

	for _, tr := range res.Teams {

		var row []string

		row = append(row, fmt.Sprintf("%d", tr.Rank))
		row = append(row, tr.Name)
		row = append(row, fmt.Sprintf("%05.2f%%", tr.ScorePercent))
		row = append(row, fmt.Sprintf("%.3f", tr.Attack))
		row = append(row, fmt.Sprintf("%.3f", tr.Defence))
		row = append(row, fmt.Sprintf("%d", tr.Advisory))

		table.Append(row)
	}

	table.Render()
}
コード例 #2
0
func TestCountScoreboard(*testing.T) {

	res := scoreboard.Result{}

	res.Teams = append(res.Teams, scoreboard.TeamResult{
		Attack:   10,
		Defence:  10,
		Advisory: 50})

	res.Teams = append(res.Teams, scoreboard.TeamResult{
		Attack:   0,
		Defence:  0,
		Advisory: 0})

	res.Teams = append(res.Teams, scoreboard.TeamResult{
		Attack:   100,
		Defence:  100,
		Advisory: 100})

	res.Teams = append(res.Teams, scoreboard.TeamResult{
		Attack:   0,
		Defence:  10,
		Advisory: 10})

	scoreboard.CountScoreAndSort(&res)

	sort.Sort(scoreboard.ByScore(res.Teams))

	for rank := 1; rank <= 4; rank++ {
		if res.Teams[rank-1].Rank != rank {
			log.Fatalln("team", rank, "rank is not", rank)
		}
	}

	if res.Teams[0].ScorePercent != 100 {
		log.Fatalln("First team score != 100%")
	}
}