mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
868 B
44 lines
868 B
package main |
|
|
|
import ( |
|
"reflect" |
|
"sort" |
|
"strings" |
|
|
|
"./student" |
|
"github.com/01-edu/public/go/lib" |
|
) |
|
|
|
func advancedSortWordArr(a []string, f func(a, b string) int) { |
|
sort.Slice(a, func(i, j int) bool { |
|
return f(a[i], a[j]) < 0 |
|
}) |
|
} |
|
|
|
func main() { |
|
table := [][]string{{"a", "A", "1", "b", "B", "2", "c", "C", "3"}} |
|
|
|
table = append(table, lib.MultMultRandWords()...) |
|
|
|
for _, org := range table { |
|
// copy for using the solution function |
|
cp_sol := make([]string, len(org)) |
|
// copy for using the student function |
|
cp_stu := make([]string, len(org)) |
|
|
|
copy(cp_sol, org) |
|
copy(cp_stu, org) |
|
|
|
advancedSortWordArr(cp_sol, strings.Compare) |
|
student.AdvancedSortWordArr(cp_stu, strings.Compare) |
|
|
|
if !reflect.DeepEqual(cp_stu, cp_sol) { |
|
lib.Fatalf("%s(%v) == %v instead of %v\n", |
|
"AdvancedSortWordArr", |
|
org, |
|
cp_stu, |
|
cp_sol, |
|
) |
|
} |
|
} |
|
}
|
|
|