comparison pkg/controllers/stretches.go @ 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 7ca9e6c9a203
children c4e295b2d6a3
comparison
equal deleted inserted replaced
5205:c7907715309f 5206:23addd19a6e2
385 rw.Header().Add("Content-Type", "text/csv") 385 rw.Header().Add("Content-Type", "text/csv")
386 386
387 out := csv.NewWriter(rw) 387 out := csv.NewWriter(rw)
388 388
389 // label, lnwl, classes 389 // label, lnwl, classes
390 record := make([]string, 1+2+len(breaks)+1) 390 record := makeHeaderStretches(useDepth && useWidth, breaks, 'd')
391 record[0] = "# time"
392 record[1] = "# < LDC [d]"
393 record[2] = "# >= LDC [d]"
394 for i, v := range breaks {
395 if useDepth && useWidth {
396 if i == 0 {
397 record[3] = "# < break_1 [d]"
398 }
399 record[i+4] = fmt.Sprintf("# >= break_%d", i+1)
400 } else {
401 if i == 0 {
402 record[3] = fmt.Sprintf("# < %.1f [d]", v)
403 }
404 record[i+4] = fmt.Sprintf("# >= %.1f [d]", v)
405 }
406 }
407 391
408 if err := out.Write(record); err != nil { 392 if err := out.Write(record); err != nil {
409 // Too late for HTTP status message. 393 // Too late for HTTP status message.
410 log.Printf("error: %v\n", err) 394 log.Printf("error: %v\n", err)
411 return 395 return
652 rw.Header().Add("Content-Type", "text/csv") 636 rw.Header().Add("Content-Type", "text/csv")
653 637
654 out := csv.NewWriter(rw) 638 out := csv.NewWriter(rw)
655 639
656 // label, lnwl, classes 640 // label, lnwl, classes
657 record := make([]string, 1+2+len(breaks)+1) 641 record := makeHeaderStretches(useDepth && useWidth, breaks, '%')
658 record[0] = "# time"
659 record[1] = "# < LDC [%%]"
660 record[2] = "# >= LDC [%%]"
661 for i, v := range breaks {
662 if useDepth && useWidth {
663 if i == 0 {
664 record[3] = "# < break_1 [%%]"
665 }
666 record[i+4] = fmt.Sprintf("# >= break_%d [%%]", i+1)
667 } else {
668 if i == 0 {
669 record[3] = fmt.Sprintf("# < %.3f [%%]", v)
670 }
671 record[i+4] = fmt.Sprintf("# >= %.3f [%%]", v)
672 }
673 }
674 642
675 if err := out.Write(record); err != nil { 643 if err := out.Write(record); err != nil {
676 // Too late for HTTP status message. 644 // Too late for HTTP status message.
677 log.Printf("error: %v\n", err) 645 log.Printf("error: %v\n", err)
678 return 646 return
705 if err := out.Error(); err != nil { 673 if err := out.Error(); err != nil {
706 // Too late for HTTP status message. 674 // Too late for HTTP status message.
707 log.Printf("error: %v\n", err) 675 log.Printf("error: %v\n", err)
708 } 676 }
709 } 677 }
678
679 func makeHeaderStretches(flag bool, breaks []float64, unit rune) []string {
680 record := make([]string, 1+2+len(breaks)+1)
681 record[0] = "# time"
682 record[1] = fmt.Sprintf("# < LDC [%c]", unit)
683 record[2] = fmt.Sprintf("# >= LDC [%c]", unit)
684 for i, v := range breaks {
685 if flag {
686 if i == 0 {
687 record[3] = fmt.Sprintf("# < break_1 [%c]", unit)
688 }
689 record[i+4] = fmt.Sprintf("# >= break_%d [%c]", i+1, unit)
690 } else {
691 if i == 0 {
692 record[3] = fmt.Sprintf("# < %.3f [%c]", v, unit)
693 }
694 record[i+4] = fmt.Sprintf("# >= %.3f [%c]", v, unit)
695 }
696 }
697 return record
698 }