...

Source file src/oss.terrastruct.com/d2/lib/geo/segment_test.go

Documentation: oss.terrastruct.com/d2/lib/geo

     1  package geo
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestSegmentIntersections(t *testing.T) {
    10  	// mid intersection
    11  	s1 := NewSegment(NewPoint(0, 0), NewPoint(10, 10))
    12  	s2 := NewSegment(NewPoint(0, 10), NewPoint(10, 0))
    13  	intersections := s1.Intersections(*s2)
    14  	assert.Equal(t, len(intersections), 1)
    15  	assert.True(t, intersections[0].Equals(NewPoint(5, 5)))
    16  
    17  	// intersection at the end
    18  	s3 := NewSegment(NewPoint(10, 10), NewPoint(10, 0))
    19  	intersections = s1.Intersections(*s3)
    20  	assert.Equal(t, len(intersections), 1)
    21  	assert.True(t, intersections[0].Equals(NewPoint(10, 10)))
    22  
    23  	// intersection at the beginning
    24  	s4 := NewSegment(NewPoint(0, 0), NewPoint(0, 10))
    25  	intersections = s1.Intersections(*s4)
    26  	assert.Equal(t, len(intersections), 1)
    27  	assert.True(t, intersections[0].Equals(NewPoint(0, 0)))
    28  
    29  	// no intersection
    30  	s5 := NewSegment(NewPoint(3, 8), NewPoint(2, 15))
    31  	intersections = s1.Intersections(*s5)
    32  	assert.Equal(t, len(intersections), 0)
    33  }
    34  

View as plain text