aboutsummaryrefslogtreecommitdiff
path: root/cmd/planr/sub/evaluate.go
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-08-11 23:00:24 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-08-11 23:00:24 -0500
commit0a2de7cf23dfb7f5d928795bba4d7ea4a073f0f5 (patch)
treefd62ee1cc577a8530f2c998e5cda61fc9969ecf8 /cmd/planr/sub/evaluate.go
parent53c727d6e5eea6a775dda21723f895a96c75e047 (diff)
Prepare for dh-golangv0.0.1upstream/0.0.1
Diffstat (limited to 'cmd/planr/sub/evaluate.go')
-rw-r--r--cmd/planr/sub/evaluate.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/cmd/planr/sub/evaluate.go b/cmd/planr/sub/evaluate.go
new file mode 100644
index 0000000..fcc8ae9
--- /dev/null
+++ b/cmd/planr/sub/evaluate.go
@@ -0,0 +1,52 @@
+package sub
+
+import (
+ "fmt"
+ "golang.furkistan.com/planr"
+)
+
+func Evaluate(params []string) {
+ rd := planr.RubricDir()
+
+ tcs := Runner().Evaluate(rd)
+
+ fmt.Printf("\n\nREPORT:\n=======\n\n")
+
+ earned := 0.0
+ total := 0.0
+ for _, tc := range tcs {
+ cfg := tc.Config
+
+ name := tc.Cname
+ if cfg.Title != nil {
+ name = *cfg.Title
+ }
+
+ var points float64 = 0.0
+ if cfg.Points != nil {
+ points = float64(*cfg.Points)
+ }
+
+ status := "SILENT"
+ if tc.Result != nil {
+ if tc.Result.Pass {
+ status = "PASS"
+ earned += points
+ } else {
+ status = "FAIL"
+ }
+ }
+
+ total += points
+
+ fmt.Printf("[%s] %s (%f)\n", status, name, points)
+
+ if cfg.Description != nil {
+ fmt.Printf("> %s\n", *cfg.Description)
+ }
+
+ fmt.Println()
+ }
+
+ fmt.Printf("Score: %f (%f%%)\n", earned, (earned / total) * 100)
+}