changeset 5206:23addd19a6e2 new-fwa

Simplified header generation for CSV output.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 11 May 2020 11:41:57 +0200
parents c7907715309f
children c4e295b2d6a3
files pkg/controllers/bottlenecks.go pkg/controllers/stretches.go
diffstat 2 files changed, 39 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/bottlenecks.go	Mon May 11 11:17:00 2020 +0200
+++ b/pkg/controllers/bottlenecks.go	Mon May 11 11:41:57 2020 +0200
@@ -271,16 +271,7 @@
 
 	out := csv.NewWriter(rw)
 
-	record := make([]string, 1+2+len(breaks)+1)
-	record[0] = "#time"
-	record[1] = fmt.Sprintf("# < LDC (%.1f) [%%]", ldcRefs[0])
-	record[2] = fmt.Sprintf("# >= LDC (%.1f) [%%]", ldcRefs[0])
-	for i, v := range breaks {
-		if i == 0 {
-			record[3] = fmt.Sprintf("#d < %.1f [%%]", v)
-		}
-		record[i+4] = fmt.Sprintf("#d >= %.1f [%%]", v)
-	}
+	record := makeHeader(breaks, '%')
 
 	if err := out.Write(record); err != nil {
 		// Too late for HTTP status message.
@@ -416,16 +407,7 @@
 	out := csv.NewWriter(rw)
 
 	// label, ldc, classes
-	record := make([]string, 1+2+len(breaks)+1)
-	record[0] = "#time"
-	record[1] = fmt.Sprintf("# < LDC (%.1f) [d]", ldcRefs[0])
-	record[2] = fmt.Sprintf("# >= LDC (%.1f) [d]", ldcRefs[0])
-	for i, v := range breaks {
-		if i == 0 {
-			record[3] = fmt.Sprintf("# < %.1f [d]", v)
-		}
-		record[i+4] = fmt.Sprintf("# >= %.1f [d]", v)
-	}
+	record := makeHeader(breaks, 'd')
 
 	if err := out.Write(record); err != nil {
 		// Too late for HTTP status message.
@@ -493,6 +475,20 @@
 	}
 }
 
+func makeHeader(breaks []float64, unit rune) []string {
+	record := make([]string, 1+2+len(breaks)+1)
+	record[0] = "#time"
+	record[1] = fmt.Sprintf("# < LDC [%c]", unit)
+	record[2] = fmt.Sprintf("# >= LDC [%c]", unit)
+	for i, v := range breaks {
+		if i == 0 {
+			record[3] = fmt.Sprintf("#d < %.1f [%c]", v, unit)
+		}
+		record[i+4] = fmt.Sprintf("#d >= %.1f [%c]", v, unit)
+	}
+	return record
+}
+
 var intervals = []func(time.Time, time.Time) func() (time.Time, time.Time, string){
 	fwaMonthly:   monthly,
 	fwaQuarterly: quarterly,
--- a/pkg/controllers/stretches.go	Mon May 11 11:17:00 2020 +0200
+++ b/pkg/controllers/stretches.go	Mon May 11 11:41:57 2020 +0200
@@ -387,23 +387,7 @@
 	out := csv.NewWriter(rw)
 
 	// label, lnwl, classes
-	record := make([]string, 1+2+len(breaks)+1)
-	record[0] = "# time"
-	record[1] = "# < LDC [d]"
-	record[2] = "# >= LDC [d]"
-	for i, v := range breaks {
-		if useDepth && useWidth {
-			if i == 0 {
-				record[3] = "# < break_1 [d]"
-			}
-			record[i+4] = fmt.Sprintf("# >= break_%d", i+1)
-		} else {
-			if i == 0 {
-				record[3] = fmt.Sprintf("# < %.1f [d]", v)
-			}
-			record[i+4] = fmt.Sprintf("# >= %.1f [d]", v)
-		}
-	}
+	record := makeHeaderStretches(useDepth && useWidth, breaks, 'd')
 
 	if err := out.Write(record); err != nil {
 		// Too late for HTTP status message.
@@ -654,23 +638,7 @@
 	out := csv.NewWriter(rw)
 
 	// label, lnwl, classes
-	record := make([]string, 1+2+len(breaks)+1)
-	record[0] = "# time"
-	record[1] = "# < LDC [%%]"
-	record[2] = "# >= LDC [%%]"
-	for i, v := range breaks {
-		if useDepth && useWidth {
-			if i == 0 {
-				record[3] = "# < break_1 [%%]"
-			}
-			record[i+4] = fmt.Sprintf("# >= break_%d [%%]", i+1)
-		} else {
-			if i == 0 {
-				record[3] = fmt.Sprintf("# < %.3f [%%]", v)
-			}
-			record[i+4] = fmt.Sprintf("# >= %.3f [%%]", v)
-		}
-	}
+	record := makeHeaderStretches(useDepth && useWidth, breaks, '%')
 
 	if err := out.Write(record); err != nil {
 		// Too late for HTTP status message.
@@ -707,3 +675,24 @@
 		log.Printf("error: %v\n", err)
 	}
 }
+
+func makeHeaderStretches(flag bool, breaks []float64, unit rune) []string {
+	record := make([]string, 1+2+len(breaks)+1)
+	record[0] = "# time"
+	record[1] = fmt.Sprintf("# < LDC [%c]", unit)
+	record[2] = fmt.Sprintf("# >= LDC [%c]", unit)
+	for i, v := range breaks {
+		if flag {
+			if i == 0 {
+				record[3] = fmt.Sprintf("# < break_1 [%c]", unit)
+			}
+			record[i+4] = fmt.Sprintf("# >= break_%d [%c]", i+1, unit)
+		} else {
+			if i == 0 {
+				record[3] = fmt.Sprintf("# < %.3f [%c]", v, unit)
+			}
+			record[i+4] = fmt.Sprintf("# >= %.3f [%c]", v, unit)
+		}
+	}
+	return record
+}