...
1 package main
2
3 import (
4 "bufio"
5 "fmt"
6 "os"
7 "sort"
8 "strconv"
9 "strings"
10 )
11
12 func main() {
13 sizes := map[string]struct{}{}
14 sizesKeys := []string{}
15 values := map[string]string{}
16 scanner := bufio.NewScanner(os.Stdin)
17 scanner.Scan()
18 for scanner.Scan() {
19 if scanner.Text() == "" {
20 break
21 }
22 fields := strings.Fields(scanner.Text())
23 if !strings.HasPrefix(fields[0], "Fixed") {
24 continue
25 }
26 values[fields[0]] = fields[7]
27 size := strings.Split(fields[0], "/")[1]
28 if _, ok := sizes[size]; !ok {
29 sizes[size] = struct{}{}
30 sizesKeys = append(sizesKeys, size)
31 }
32 }
33
34 sort.Slice(sizesKeys, func(i, j int) bool {
35 vi, _ := strconv.Atoi(strings.Split(sizesKeys[i], "-")[0])
36 vj, _ := strconv.Atoi(strings.Split(sizesKeys[j], "-")[0])
37 if vi == vj {
38 return sizesKeys[i] < sizesKeys[j]
39 }
40 return vi < vj
41 })
42
43 fmt.Println("size|64|64 seed|128|128 seed")
44 fmt.Println("----|--|-------|---|--------")
45
46 for _, size := range sizesKeys {
47 fmt.Printf("%s|%s|%s|%s|%s\n",
48 size,
49 values[fmt.Sprintf("Fixed64/%s/default", size)],
50 values[fmt.Sprintf("Fixed64/%s/seed", size)],
51 values[fmt.Sprintf("Fixed128/%s/default", size)],
52 values[fmt.Sprintf("Fixed128/%s/seed", size)],
53 )
54 }
55 }
56
View as plain text