annotate pkg/octree/plane2d_test.go @ 813:1a808929c2c5

Cross sections: Fixed problem that certain inputs don't deliver data.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 27 Sep 2018 17:32:25 +0200
parents 9be20bd0f131
children a244b18cb916
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
778
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package octree
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import (
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 "math"
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 "testing"
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 )
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 func TestIntersection(t *testing.T) {
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 table := []struct {
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 a [4]float64
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 b [4]float64
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 intersects bool
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 x, y float64
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 }{
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 {[4]float64{-1, -1, 1, 1}, [4]float64{-1, 1, 1, -1}, true, 0, 0},
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 {[4]float64{0, 0, 1, 1}, [4]float64{0, 1, 1, 0}, true, 0.5, 0.5},
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 {[4]float64{0, 0, 1, 0}, [4]float64{0, 1, 1, 1}, false, 0, 0},
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 }
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 for _, e := range table {
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 p1 := NewPlane2D(e.a[0], e.a[1], e.a[2], e.a[3])
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 p2 := NewPlane2D(e.b[0], e.b[1], e.b[2], e.b[3])
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 x, y, intersects := p1.Intersection(p2)
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 if intersects != e.intersects {
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 t.Fatalf("Have %t want %t\n", intersects, e.intersects)
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 }
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 if e.intersects {
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 if math.Abs(e.x-x) > epsPlane || math.Abs(e.y-y) > epsPlane {
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 t.Fatalf("Have (%f, %f)t want (%f, %f)\n", x, y, e.x, e.y)
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 }
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 }
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 }
9be20bd0f131 Fixed a bug with 2d planes (lines) found while working on line intersections.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 }