go,tex: add logic for go-generating tex reports
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
8b1e496c10
commit
826347f7a7
3
main.go
3
main.go
@ -8,6 +8,7 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"git.dotya.ml/wanderer/math-optim/algo"
|
"git.dotya.ml/wanderer/math-optim/algo"
|
||||||
|
"git.dotya.ml/wanderer/math-optim/report"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "development"
|
var version = "development"
|
||||||
@ -27,5 +28,7 @@ func main() {
|
|||||||
|
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
|
||||||
|
report.Print()
|
||||||
|
|
||||||
log.Println("looks like we're done")
|
log.Println("looks like we're done")
|
||||||
}
|
}
|
||||||
|
70
report/gen.go
Normal file
70
report/gen.go
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
// Copyright 2022 wanderer <a_mirre at utb dot cz>
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
//go:build ignore
|
||||||
|
// +build ignore
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"text/template"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
columns := []string{
|
||||||
|
"l",
|
||||||
|
"c",
|
||||||
|
"c",
|
||||||
|
"c",
|
||||||
|
"c",
|
||||||
|
"c",
|
||||||
|
}
|
||||||
|
results := []float64{
|
||||||
|
161.032187,
|
||||||
|
125.03484,
|
||||||
|
80321,
|
||||||
|
85.0362432,
|
||||||
|
-4.466,
|
||||||
|
66.0008,
|
||||||
|
}
|
||||||
|
topics := []string{
|
||||||
|
"func name",
|
||||||
|
"minS",
|
||||||
|
"maxS",
|
||||||
|
"meanS",
|
||||||
|
"medianS",
|
||||||
|
"stdDevS",
|
||||||
|
}
|
||||||
|
|
||||||
|
fName := "report.tex"
|
||||||
|
paths := []string{
|
||||||
|
"report.tmpl",
|
||||||
|
}
|
||||||
|
f, err := os.Create(fName)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
reportTemplate := template.Must(template.ParseFiles(paths...))
|
||||||
|
|
||||||
|
err = reportTemplate.Execute(f, struct {
|
||||||
|
Timestamp time.Time
|
||||||
|
Topics []string
|
||||||
|
Results []float64
|
||||||
|
Columns []string
|
||||||
|
}{
|
||||||
|
Timestamp: time.Now(),
|
||||||
|
Topics: topics,
|
||||||
|
Results: results,
|
||||||
|
Columns: columns,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
}
|
30
report/report.go
Normal file
30
report/report.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
// Copyright 2022 wanderer <a_mirre at utb dot cz>
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
package report
|
||||||
|
|
||||||
|
//go:generate go run gen.go
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Print prints stats in a report format.
|
||||||
|
func Print() {
|
||||||
|
fmt.Fprint(os.Stderr, " printing report...")
|
||||||
|
|
||||||
|
fname := "report.tex"
|
||||||
|
|
||||||
|
fh, err := os.Open(fname)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = io.Copy(os.Stdout, fh)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
19
report/report.tex
Normal file
19
report/report.tex
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
% Code generated by go generate; DO NOT EDIT.
|
||||||
|
% This file was generated by robots at
|
||||||
|
% 2022-06-15 23:30:32.080901953 +0200 CEST m=+0.000320625
|
||||||
|
% source: git.dotya.ml/wanderer/math-optim/report/report.tmpl
|
||||||
|
|
||||||
|
% This file is a part of the math-optim project.
|
||||||
|
% project homepage: https://git.dotya.ml/wanderer/math-optim/
|
||||||
|
|
||||||
|
\begin{tabular}{ ||l|c|c|c|c|c|| }
|
||||||
|
func name & minS & maxS & meanS & medianS & stdDevS & \\
|
||||||
|
161.032187 & \\
|
||||||
|
125.034840 & \\
|
||||||
|
80321.000000 & \\
|
||||||
|
85.036243 & \\
|
||||||
|
-4.466000 & \\
|
||||||
|
66.000800 & \\
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
% vim: ft=gotexttmpl.tex ts=2 bs=2
|
16
report/report.tmpl
Normal file
16
report/report.tmpl
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
% Code generated by go generate; DO NOT EDIT.
|
||||||
|
% This file was generated by robots at
|
||||||
|
% {{ .Timestamp }}
|
||||||
|
% source: git.dotya.ml/wanderer/math-optim/report/report.tmpl
|
||||||
|
|
||||||
|
% This file is a part of the math-optim project.
|
||||||
|
% project homepage: https://git.dotya.ml/wanderer/math-optim/
|
||||||
|
|
||||||
|
\begin{tabular}{ ||{{- range $i, $v := .Columns }}{{$v}}| {{- end}}| }
|
||||||
|
{{ range $i, $v := .Topics }}{{$v }} & {{ end}}\\
|
||||||
|
{{- range .Results }}
|
||||||
|
{{ printf "%f &" . }} \\
|
||||||
|
{{- end }}
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
% vim: ft=gotexttmpl.tex ts=2 bs=2
|
Loading…
Reference in New Issue
Block a user