(t *testing.T)
| 143 | ) |
| 144 | |
| 145 | func 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 |
nothing calls this directly
no test coverage detected
searching dependent graphs…