gobm65.go
changeset 22 853f58e76ba5
parent 21 c00a10738af3
child 23 7be02d3facf4
equal deleted inserted replaced
21:c00a10738af3 22:853f58e76ba5
    59 	"fmt"
    59 	"fmt"
    60 	"io"
    60 	"io"
    61 	"io/ioutil"
    61 	"io/ioutil"
    62 	"log"
    62 	"log"
    63 	"math"
    63 	"math"
       
    64 	"os"
    64 	"sort"
    65 	"sort"
    65 	"strings"
    66 	"strings"
    66 	"time"
    67 	"time"
    67 
    68 
    68 	flag "github.com/docker/docker/pkg/mflag"
    69 	flag "github.com/docker/docker/pkg/mflag"
   474 		classes[s]++
   475 		classes[s]++
   475 		sum += s
   476 		sum += s
   476 	}
   477 	}
   477 
   478 
   478 	avg := float64(sum) / float64(len(items))
   479 	avg := float64(sum) / float64(len(items))
   479 	fmt.Printf("Average WHO classification: %s (%.2f)\n",
   480 	fmt.Fprintf(os.Stderr, "Average WHO classification: %s (%.2f)\n",
   480 		WHOPressureClassification[int(0.5+avg)], avg)
   481 		WHOPressureClassification[int(0.5+avg)], avg)
   481 
   482 
   482 	for c := range WHOPressureClassification {
   483 	for c := range WHOPressureClassification {
   483 		fmt.Printf(" . %21s: %3d (%d%%)\n",
   484 		fmt.Fprintf(os.Stderr, " . %21s: %3d (%d%%)\n",
   484 			WHOPressureClassification[c], classes[c],
   485 			WHOPressureClassification[c], classes[c],
   485 			classes[c]*100/len(items))
   486 			classes[c]*100/len(items))
   486 	}
   487 	}
   487 }
   488 }
   488 
   489 
   664 	if *avg && len(items) > 0 {
   665 	if *avg && len(items) > 0 {
   665 		avgMeasure, err := average(items)
   666 		avgMeasure, err := average(items)
   666 		if err != nil {
   667 		if err != nil {
   667 			log.Println("Error:", err)
   668 			log.Println("Error:", err)
   668 		} else {
   669 		} else {
   669 			fmt.Printf("Average: %d;%d;%d", avgMeasure.Systolic,
   670 			fmt.Fprintf(os.Stderr, "Average: %d;%d;%d",
   670 				avgMeasure.Diastolic, avgMeasure.Pulse)
   671 				avgMeasure.Systolic, avgMeasure.Diastolic,
       
   672 				avgMeasure.Pulse)
   671 			if *whoClass {
   673 			if *whoClass {
   672 				fmt.Printf("  [%s]", avgMeasure.WHOClassString())
   674 				fmt.Fprintf(os.Stderr, "  [%s]",
   673 			}
   675 					avgMeasure.WHOClassString())
   674 			fmt.Println()
   676 			}
       
   677 			fmt.Fprintln(os.Stderr)
   675 		}
   678 		}
   676 	}
   679 	}
   677 
   680 
   678 	if *stats && len(items) > 1 {
   681 	if *stats && len(items) > 1 {
   679 		d, err := stdDeviation(items)
   682 		d, err := stdDeviation(items)
   680 		if err != nil {
   683 		if err != nil {
   681 			log.Println("Error:", err)
   684 			log.Println("Error:", err)
   682 		} else {
   685 		} else {
   683 			fmt.Printf("Standard deviation: %d;%d;%d\n",
   686 			fmt.Fprintf(os.Stderr, "Standard deviation: %d;%d;%d\n",
   684 				d.Systolic, d.Diastolic, d.Pulse)
   687 				d.Systolic, d.Diastolic, d.Pulse)
   685 		}
   688 		}
   686 		d, err = avgAbsoluteDeviation(items)
   689 		d, err = avgAbsoluteDeviation(items)
   687 		if err != nil {
   690 		if err != nil {
   688 			log.Println("Error:", err)
   691 			log.Println("Error:", err)
   689 		} else {
   692 		} else {
   690 			fmt.Printf("Average absolute deviation: %d;%d;%d\n",
   693 			fmt.Fprintf(os.Stderr, "Average absolute deviation: %d;%d;%d\n",
   691 				d.Systolic, d.Diastolic, d.Pulse)
   694 				d.Systolic, d.Diastolic, d.Pulse)
   692 		}
   695 		}
   693 	}
   696 	}
   694 	if *stats && len(items) > 0 {
   697 	if *stats && len(items) > 0 {
   695 		m, err := median(items)
   698 		m, err := median(items)
   696 		if err != nil {
   699 		if err != nil {
   697 			log.Println("Error:", err)
   700 			log.Println("Error:", err)
   698 		} else {
   701 		} else {
   699 			fmt.Printf("Median values: %d;%d;%d",
   702 			fmt.Fprintf(os.Stderr, "Median values: %d;%d;%d",
   700 				m.Systolic, m.Diastolic, m.Pulse)
   703 				m.Systolic, m.Diastolic, m.Pulse)
   701 			if *whoClass {
   704 			if *whoClass {
   702 				fmt.Printf("  [%s]", m.WHOClassString())
   705 				fmt.Fprintf(os.Stderr, "  [%s]", m.WHOClassString())
   703 			}
   706 			}
   704 			fmt.Println()
   707 			fmt.Fprintln(os.Stderr)
   705 		}
   708 		}
   706 
   709 
   707 		if *whoClass {
   710 		if *whoClass {
   708 			displayWHOClassStats(items)
   711 			displayWHOClassStats(items)
   709 		}
   712 		}