diff --git a/translate_test.go b/translate_test.go
index 4dba9db139ed475373809ec19d9956b0f9794f33..b2cc8f7b6a0519f798cd705379287da771ec57e1 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