From 20a479c5a9dbdb24e3fe08aeb94440ade6a88de9 Mon Sep 17 00:00:00 2001
From: Nick White <git@njw.name>
Date: Thu, 24 Jan 2019 17:02:56 +0000
Subject: Simplify .prob processing

---
 parse/prob/prob.go | 27 ++++++++++++---------------
 1 file changed, 12 insertions(+), 15 deletions(-)

(limited to 'parse')

diff --git a/parse/prob/prob.go b/parse/prob/prob.go
index 6781a1a..8d01cab 100644
--- a/parse/prob/prob.go
+++ b/parse/prob/prob.go
@@ -1,7 +1,6 @@
 package prob
 
 import (
-	"bufio"
 	"io/ioutil"
 	"path/filepath"
 	"strconv"
@@ -10,22 +9,21 @@ import (
 	"git.rescribe.xyz/testingtools/parse"
 )
 
-// TODO: probably switch to just relying on io.Reader
-func getLineAvg(r *bufio.Reader) (float64, error) {
-	var err error
-
+func getLineAvg(f string) (float64, error) {
 	totalconf := float64(0)
 	num := 0
 
-	err = nil
-	for err == nil {
-		var line string
-		line, err = r.ReadString('\n')
+	prob, err := ioutil.ReadFile(f)
+        if err != nil {
+		return 0, err
+	}
+
+	for _, line := range strings.Split(string(prob), "\n") {
 		fields := strings.Fields(line)
 
 		if len(fields) == 2 {
-			conf, converr := strconv.ParseFloat(fields[1], 64)
-			if converr != nil {
+			conf, err := strconv.ParseFloat(fields[1], 64)
+			if err != nil {
 				continue
 			}
 			totalconf += conf
@@ -39,18 +37,17 @@ func getLineAvg(r *bufio.Reader) (float64, error) {
 	return avg, nil
 }
 
-// TODO: probably switch to just relying on io.Reader
 // Note this only processes one line at a time
-func GetLineDetails(name string, r *bufio.Reader) (parse.LineDetails, error) {
+func GetLineDetails(probfn string) (parse.LineDetails, error) {
 	var line parse.LineDetail
 	lines := make(parse.LineDetails, 0)
 
-	avg, err := getLineAvg(r)
+	avg, err := getLineAvg(probfn)
 	if err != nil {
 		return lines, err
 	}
 
-	filebase := strings.Replace(name, ".prob", "", 1)
+	filebase := strings.Replace(probfn, ".prob", "", 1)
 
 	txt, err := ioutil.ReadFile(filebase + ".txt")
 	if err != nil {
-- 
cgit v1.2.1-24-ge1ad