about summary refs log tree commit diff
path: root/tools/seqstat/sequence.go
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-10-15 12:32:28 -0700
committerFranck Cuny <franck@fcuny.net>2022-10-15 12:32:28 -0700
commitce39b5fd65a91e241b2edbb9fd6a9a12967a064d (patch)
treebd0ec3519ac3a41c55193023dc3f3bb2705114a1 /tools/seqstat/sequence.go
parentci: update the flake once a week (diff)
downloadworld-ce39b5fd65a91e241b2edbb9fd6a9a12967a064d.tar.gz
ref(seqstat): rewrite from go to python
This is a simple script, there's no benefit in having this in go. Having
it Python makes it easier to extend with panda or other libraries in the
future if I need more statistics too.
Diffstat (limited to '')
-rw-r--r--tools/seqstat/sequence.go79
1 files changed, 0 insertions, 79 deletions
diff --git a/tools/seqstat/sequence.go b/tools/seqstat/sequence.go
deleted file mode 100644
index d4ec91b..0000000
--- a/tools/seqstat/sequence.go
+++ /dev/null
@@ -1,79 +0,0 @@
-package main
-
-import (
-	"sort"
-)
-
-var (
-	ticks = []rune{'\u2581', '\u2582', '\u2583', '\u2584', '\u2585', '\u2586', '\u2587', '\u2588'}
-)
-
-type sequence struct {
-	elements       []float64
-	elementsSorted []float64
-	min            float64
-	max            float64
-	factor         int
-	sum            float64
-}
-
-func (s *sequence) avg() float64 {
-	return s.sum / float64(len(s.elements))
-}
-
-func (s *sequence) p50() float64 {
-	return s.elementsSorted[len(s.elementsSorted)*50/100]
-}
-
-func (s *sequence) p90() float64 {
-	return s.elementsSorted[len(s.elementsSorted)*90/100]
-}
-
-func (s *sequence) p99() float64 {
-	return s.elementsSorted[len(s.elementsSorted)*99/100]
-}
-
-func (s *sequence) p999() float64 {
-	return s.elementsSorted[len(s.elementsSorted)*999/1000]
-}
-func (s *sequence) histogram() []rune {
-	histogram := make([]rune, len(s.elements))
-	for i, num := range s.elements {
-		v := (((int(num) - int(s.min)) << 8) / s.factor)
-		histogram[i] = ticks[v]
-	}
-	return histogram
-}
-
-func newSequence(elements []float64) *sequence {
-	s := new(sequence)
-	s.elements = elements
-
-	s.min = s.elements[0]
-	s.max = s.elements[0]
-
-	s.sum = 0
-
-	for _, element := range s.elements {
-		if element > s.max {
-			s.max = element
-		}
-		if element < s.min {
-			s.min = element
-		}
-		s.sum += element
-	}
-
-	s.factor = ((int(s.max) - int(s.min)) << 8) / (len(ticks) - 1)
-
-	if s.factor < 1 {
-		s.factor = 1
-	}
-
-	elementsSorted := make([]float64, len(elements))
-	copy(elementsSorted, elements)
-	sort.Float64s(elementsSorted)
-	s.elementsSorted = elementsSorted
-
-	return s
-}