From 1e6179d372b49bf6ac435ea9ce5400824a0cd427 Mon Sep 17 00:00:00 2001 From: Since <ax20yhum@cip.cs.fau.de> Date: Sun, 19 Mar 2017 21:59:22 +0100 Subject: [PATCH] Add resolution test --- translate_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/translate_test.go b/translate_test.go index 4dba9db..b2cc8f7 100644 --- a/translate_test.go +++ b/translate_test.go @@ -5,6 +5,40 @@ import ( "testing" ) +func TestResolution(t *testing.T) { + equal := func(a, b float64) bool { + epsilon := 0.000001 // inaccuracy by 1mm + return math.Abs(a-b) < epsilon + } + + var ( + srcLat, srcLon = 48.173146, 11.546604 // Munich + dstLat, dstLon = 53.534366, 08.576135 // Bremerhaven + expDist = 663.629945199998 // km + ) + dummys := []*Composite{ + NewDummy("SF", 900, 900), + NewDummy("SF", 450, 450), + NewDummy("SF", 225, 225), + NewDummy("SF", 112, 112), + NewDummy("SF", 627, 212), + } + + for _, comp := range dummys { + srcX, srcY := comp.Translate(srcLat, srcLon) + dstX, dstY := comp.Translate(dstLat, dstLon) + + vecX, vecY := (srcX-dstX)*comp.Rx, (srcY-dstY)*comp.Ry + resDist := math.Sqrt(vecX*vecX + vecY*vecY) + + if !equal(resDist, expDist) { + t.Errorf("dummy.Rx = %#v, dummy.Ry = %#v; distance: %#v expected: %#v)", + comp.Rx, comp.Ry, resDist, expDist) + } + } + +} + func TestTranslate(t *testing.T) { equal := func(a, b float64) bool { epsilon := 0.1 // inaccuracy by 100 meters -- GitLab