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