MCPcopy
hub / github.com/golang/geo / TestEncodeDecode

Function TestEncodeDecode

s2/encode_test.go:145–260  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

143)
144
145func TestEncodeDecode(t *testing.T) {
146 cu := CellUnion{}
147 cuFace := CellUnion([]CellID{CellIDFromFace(1)})
148 cuCells := CellUnion([]CellID{
149 CellID(0x33),
150 CellID(0x8e3748fab),
151 CellID(0x91230abcdef83427),
152 })
153
154 capPtr := func(c Cap) *Cap { return &c }
155 cidPtr := func(c CellID) *CellID { return &c }
156 cellPtr := func(c Cell) *Cell { return &c }
157 ptPtr := func(pt Point) *Point { return &pt }
158 rectPtr := func(r Rect) *Rect { return &r }
159
160 // Polyline inputs
161 // semiEquator := Polyline([]Point{
162 // PointFromLatLng(LatLngFromDegrees(0, 0)),
163 // PointFromLatLng(LatLngFromDegrees(0, 90)),
164 // PointFromLatLng(LatLngFromDegrees(0, 180)),
165 // })
166 // threeSegments := makePolyline("0:0, 0:10, 10:20, 20:30")
167
168 const cross1 = "-2:1, -1:1, 1:1, 2:1, 2:-1, 1:-1, -1:-1, -2:-1"
169 const crossCenterHole = "-0.5:0.5, 0.5:0.5, 0.5:-0.5, -0.5:-0.5;"
170
171 emptyPolygon := func() *Polygon {
172 p := &Polygon{loops: []*Loop{}, bound: EmptyRect(), subregionBound: EmptyRect()}
173 p.initEdgesAndIndex()
174 return p
175 }
176
177 tests := []struct {
178 golden string
179 reg encodableRegion
180 }{
181 // Caps
182 {encodedCapEmpty, capPtr(EmptyCap())},
183 {encodedCapFull, capPtr(FullCap())},
184 {encodedCapFromPoint, capPtr(CapFromPoint(PointFromCoords(3, 2, 1)))},
185 {encodedCapFromCenterHeight, capPtr(CapFromCenterHeight(PointFromCoords(0, 0, 1), 5))},
186 {encodedCapFromCenterHeight2, capPtr(CapFromCenterHeight(PointFromCoords(0, 0, 1), 0.5))},
187
188 // CellIDs
189 {encodedCellIDFace0, cidPtr(CellIDFromFace(0))},
190 {encodedCellIDFace5, cidPtr(CellIDFromFace(5))},
191 {encodedCellIDFace0MaxLevel, cidPtr(CellIDFromFace(0).ChildEndAtLevel(MaxLevel))},
192 {encodedCellIDFace5MaxLevel, cidPtr(CellIDFromFace(5).ChildEndAtLevel(MaxLevel))},
193 {encodedCellIDFacePosLevel, cidPtr(CellIDFromFacePosLevel(3, 0x12345678, MaxLevel-4))},
194 {encodedCellIDInvalid, cidPtr(CellID(0))},
195
196 // Cells
197 {encodedCellFromPoint, cellPtr(CellFromPoint(Point{r3.Vector{X: 1, Y: 2, Z: 3}}))},
198 // Lake Tahoe CA/NV border corner
199 {encodedCellFromLatLng, cellPtr(CellFromLatLng(LatLngFromDegrees(39.0, -120.0)))},
200 {encodedCellFromFacePosLevel, cellPtr(CellFromCellID(CellIDFromFacePosLevel(3, 0x12345678, MaxLevel-4)))},
201 {encodedCellFace0, cellPtr(CellFromCellID(CellIDFromFace(0)))},
202

Callers

nothing calls this directly

Calls 15

initEdgesAndIndexMethod · 0.95
CellUnionTypeAlias · 0.85
CellIDFromFaceFunction · 0.85
CellIDTypeAlias · 0.85
EmptyCapFunction · 0.85
FullCapFunction · 0.85
CapFromPointFunction · 0.85
PointFromCoordsFunction · 0.85
CapFromCenterHeightFunction · 0.85
CellIDFromFacePosLevelFunction · 0.85
CellFromPointFunction · 0.85
CellFromLatLngFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…