- IsPointInPolygon added
This commit is contained in:
23
utils/utils_sort.go
Normal file
23
utils/utils_sort.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package utils
|
||||
|
||||
type SortItem struct {
|
||||
CompareValue int64
|
||||
Index int
|
||||
}
|
||||
|
||||
type SortList []*SortItem
|
||||
|
||||
func (p SortList) Len() int {
|
||||
return len(p)
|
||||
}
|
||||
|
||||
// Less reports whether the element with
|
||||
// index i should sort before the element with index j.
|
||||
func (p SortList) Less(i, j int) bool {
|
||||
return p[i].CompareValue < p[j].CompareValue
|
||||
}
|
||||
|
||||
// Swap swaps the elements with indexes i and j.
|
||||
func (p SortList) Swap(i, j int) {
|
||||
p[i], p[j] = p[j], p[i]
|
||||
}
|
||||
31
utils/utils_sort_test.go
Normal file
31
utils/utils_sort_test.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"sort"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSort(t *testing.T) {
|
||||
randIntList := make([]int, 100)
|
||||
for k := range randIntList {
|
||||
randIntList[k] = rand.Int()
|
||||
}
|
||||
copiedList := make([]int, len(randIntList))
|
||||
copy(copiedList, randIntList)
|
||||
sort.Sort(sort.IntSlice(randIntList))
|
||||
|
||||
sortList := make(SortList, len(copiedList))
|
||||
for k := range copiedList {
|
||||
sortList[k] = &SortItem{
|
||||
CompareValue: int64(copiedList[k]),
|
||||
Index: k,
|
||||
}
|
||||
}
|
||||
sort.Sort(sortList)
|
||||
for k := range randIntList {
|
||||
if randIntList[k] != copiedList[sortList[k].Index] {
|
||||
t.Fatal("排序出错")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user