From 7c909810f6fbf0214a7f35071ff54ee2beadd676 Mon Sep 17 00:00:00 2001 From: Sky Brewer Date: Tue, 4 Mar 2014 11:14:53 +0000 Subject: [PATCH] first commit --- data/data.go | 61 +++++++++++++++++++++++++++++++++++++++++++++++ data/data_test.go | 48 +++++++++++++++++++++++++++++++++++++ data/test.dat | 2 ++ main.go | 6 +++++ 4 files changed, 117 insertions(+) create mode 100644 data/data.go create mode 100644 data/data_test.go create mode 100644 data/test.dat create mode 100644 main.go diff --git a/data/data.go b/data/data.go new file mode 100644 index 0000000..6558271 --- /dev/null +++ b/data/data.go @@ -0,0 +1,61 @@ +package data + +import ( + "bufio" + "math" + "os" + "strconv" +) + +type Zeros map[float64]float64 + +func check(e error) { + if e != nil { + panic(e) + } +} + +func ImportZeros(filename string) Zeros { + f, err := os.Open(filename) + check(err) + + z := make(Zeros) + scanner := bufio.NewScanner(f) + for scanner.Scan() { + text := scanner.Text() + number, parseErr := strconv.ParseFloat(text, 64) + z[number] = number - math.Floor(number) + check(parseErr) + } + check(scanner.Err()) + return z +} + +func ExportData(data) { +} + +func floatsEqual(a float64, b float64) bool { + Epsilon := 0.000001 + if math.Abs(a-b) < Epsilon { + return true + } + return false +} + +// fractional differences +func closestZero(z Zeros, zero float64) float64 { +} + +func fractionalDifferences(z Zeros) (float64, float64) { +} + +// zeros epsilon close to other +func fCloseTo(z Zeros, zero float64, epsilon float64) int { +} + +func zerosFCloseTo(z Zeros, epsilon float64) float64 { +} + +// histogram creating +func createHistogram(z Zeros, epsilon float64) map[int]float64 { +} diff --git a/data/data_test.go b/data/data_test.go new file mode 100644 index 0000000..445495f --- /dev/null +++ b/data/data_test.go @@ -0,0 +1,48 @@ +package data + +import ( + "testing" +) + +func TestFloatsEqual(t *testing.T) { + const inA, inB, out = 1.2, 1.2, true + if x := floatsEqual(inA, inB); x != out { + t.Errorf("floatsEqual(%v, %v) = %v, want %v", inA, inB, x, out) + } + + const inA2, inB2, out2 = 1.2, 1.3, false + if x := floatsEqual(inA2, inB2); x != out2 { + t.Errorf("floatsEqual(%v, %v) = %v, want %v", inA2, inB2, x, out2) + } +} + +func TestImportZeros(t *testing.T) { + const in string = "test.dat" + out := Zeros{3.14: 0.14, 2.71: 0.71} + x := ImportZeros(in) + for k, v := range x { + if !floatsEqual(out[k], v) { + t.Errorf("ImportZeros(%v) = %v, want %v", in, x, out) + } + } +} + +func TestClosestZero(t *testing.T) { + +} + +func TestFractionalDifferences(t *testing.T) { + +} + +func TestFCloseTo(t *testing.T) { + +} + +func TestZerosFCloseTo(t *testing.T) { + +} + +func TestCreateHistogram(t *testing.T) { + +} diff --git a/data/test.dat b/data/test.dat new file mode 100644 index 0000000..1802f17 --- /dev/null +++ b/data/test.dat @@ -0,0 +1,2 @@ +3.14 +2.71 \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 0000000..8caaf51 --- /dev/null +++ b/main.go @@ -0,0 +1,6 @@ +package main + +func main() { + z := data.ImportZeros("zeros6") + +}