This repository was archived by the owner on Sep 20, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 164
/
Copy pathwalking-robot-simulation_test.go
executable file
·107 lines (88 loc) · 6.08 KB
/
walking-robot-simulation_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package problem0874
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
// tcs is testcase slice
var tcs = []struct {
commands []int
obstacles [][]int
ans int
}{
{
[]int{3, 2, 4, 1, -2, -1, -1, 3, 8, 7, 5, -2, 5, 9, -2, 8, 3, -1, 8, 7, -2, 7, -2, 7, 4, 9, 5, 7, 9, 9, -1, 2, -1, -1, -2, -1, 8, -1, 7, -1, 2, 6, 6, 3, -1, 7, 5, 4, 4, 1, -2, 9, 4, -2, 5, 7, -2, -2, 5, 4, 3, 8, -2, 5, 5, 6, 6, 6, 8, -1, 1, -1, -1, 6, 3, 5, 8, 2, -1, 7, -2, 8, -2, -2, 2, 4, -1, -1, -2, 3, 4, -2, 1, 9, -1, -2, 4, 7, 5, 9},
[][]int{{39, 83}, {1, 30}, {-62, -88}, {-82, -65}, {81, -88}, {-100, -74}, {-33, 64}, {96, -15}, {91, -71}, {27, 33}, {-66, 28}, {99, 83}, {80, 3}, {-65, -53}, {92, -47}, {14, -71}, {-70, -6}, {-42, -31}, {92, 73}, {-47, -59}, {-77, -8}, {-89, 8}, {-2, -22}, {-95, 61}, {-76, -75}, {5, -52}, {81, 32}, {12, -15}, {-69, -20}, {81, -77}, {-79, -42}, {13, -32}, {-6, 12}, {-6, 95}, {54, -17}, {-55, -76}, {9, -93}, {51, -27}, {73, -70}, {13, -3}, {-72, 38}, {8, 56}, {88, 56}, {62, 16}, {-5, -94}, {-55, 31}, {-21, 69}, {-32, 82}, {-80, 60}, {-1, 54}, {-52, 22}, {30, 52}, {-35, -55}, {-100, 75}, {98, 10}, {-67, 41}, {44, 38}, {18, -29}, {73, 0}, {-29, -62}, {-27, -67}, {-42, -64}, {-60, 20}, {-32, 18}, {60, -89}, {-31, 98}, {-27, 85}, {53, -38}, {-58, -33}, {9, -9}, {-66, -26}, {72, 46}, {49, 99}, {58, -80}, {-10, -76}, {-22, 13}, {-34, 100}, {-31, -43}, {89, -95}, {52, -49}, {61, -5}, {20, -94}, {-42, 79}, {-39, -60}, {-70, 39}, {-21, -10}, {-41, 51}, {-21, -51}, {82, 97}, {-81, -77}, {39, 63}, {24, 96}, {-73, 36}, {88, -92}, {-84, 27}, {-33, 78}, {96, 7}, {-19, 10}, {19, -40}, {-94, -25}, {32, 52}, {42, -22}, {77, 65}, {-64, -4}, {93, 94}, {21, 89}, {-90, 9}, {-74, -33}, {-30, -13}, {35, 2}, {-38, 84}, {-29, 96}, {73, 57}, {-43, -9}, {-9, -86}, {50, -64}, {24, -83}, {2, 18}, {-96, 52}, {77, 71}, {-93, -57}, {-88, -40}, {85, -40}, {2, -45}, {1, 47}, {89, 19}, {-27, 40}, {-6, -39}, {40, -19}, {35, 87}, {88, -37}, {31, -79}, {33, 8}, {-2, 56}, {25, 16}, {-60, -9}, {-7, -23}, {-24, 86}, {-79, 79}, {80, -69}, {10, -21}, {-93, -25}, {23, -59}, {-81, -50}, {-2, -46}, {-64, -91}, {82, 25}, {24, 8}, {-59, 53}, {-94, 61}, {-18, -67}, {47, 34}, {77, 11}, {11, -81}, {84, 29}, {-61, -12}, {-94, 41}, {-56, -1}, {-79, 10}, {-32, 67}, {17, 45}, {-11, -4}, {44, 66}, {-98, -55}, {67, 43}, {-28, -80}, {72, -97}, {-86, -99}, {1, 43}, {-75, -72}, {-24, -92}, {-42, -44}, {38, 33}, {-64, -12}, {-82, -60}, {38, -51}, {71, -47}, {40, 42}, {-85, 60}, {-46, -61}, {-25, 17}, {-13, -17}, {21, 84}, {-56, -72}, {95, 67}, {-28, 73}, {53, -4}, {-14, -92}, {21, -43}, {82, -63}, {-98, 42}, {65, -97}, {-78, 72}, {54, 65}, {44, -15}, {-88, 7}, {23, -62}, {-8, -6}, {-11, -93}, {43, 81}},
4328,
},
{
[]int{5},
[][]int{{0, 3}},
4,
},
{
[]int{-2, -2, -2, 5},
[][]int{{3, 0}},
4,
},
{
[]int{-1, 5},
[][]int{{3, 0}},
4,
},
{
[]int{-2, -2, 5},
[][]int{{0, -3}},
4,
},
{
[]int{-1, -1, 5},
[][]int{{0, -3}},
4,
},
{
[]int{-2, 5},
[][]int{{-3, 0}},
4,
},
{
[]int{-1, -1, -1, 5},
[][]int{{-3, 0}},
4,
},
{
[]int{1, 2, -2, 5, -1, -2, -1, 8, 3, -1, 9, 4, -2, 3, 2, 4, 3, 9, 2, -1, -1, -2, 1, 3, -2, 4, 1, 4, -1, 1, 9, -1, -2, 5, -1, 5, 5, -2, 6, 6, 7, 7, 2, 8, 9, -1, 7, 4, 6, 9, 9, 9, -1, 5, 1, 3, 3, -1, 5, 9, 7, 4, 8, -1, -2, 1, 3, 2, 9, 3, -1, -2, 8, 8, 7, 5, -2, 6, 8, 4, 6, 2, 7, 2, -1, 7, -2, 3, 3, 2, -2, 6, 9, 8, 1, -2, -1, 1, 4, 7},
[][]int{{-57, -58}, {-72, 91}, {-55, 35}, {-20, 29}, {51, 70}, {-61, 88}, {-62, 99}, {52, 17}, {-75, -32}, {91, -22}, {54, 33}, {-45, -59}, {47, -48}, {53, -98}, {-91, 83}, {81, 12}, {-34, -90}, {-79, -82}, {-15, -86}, {-24, 66}, {-35, 35}, {3, 31}, {87, 93}, {2, -19}, {87, -93}, {24, -10}, {84, -53}, {86, 87}, {-88, -18}, {-51, 89}, {96, 66}, {-77, -94}, {-39, -1}, {89, 51}, {-23, -72}, {27, 24}, {53, -80}, {52, -33}, {32, 4}, {78, -55}, {-25, 18}, {-23, 47}, {79, -5}, {-23, -22}, {14, -25}, {-11, 69}, {63, 36}, {35, -99}, {-24, 82}, {-29, -98}, {-50, -70}, {72, 95}, {80, 80}, {-68, -40}, {65, 70}, {-92, 78}, {-45, -63}, {1, 34}, {81, 50}, {14, 91}, {-77, -54}, {13, -88}, {24, 37}, {-12, 59}, {-48, -62}, {57, -22}, {-8, 85}, {48, 71}, {12, 1}, {-20, 36}, {-32, -14}, {39, 46}, {-41, 75}, {13, -23}, {98, 10}, {-88, 64}, {50, 37}, {-95, -32}, {46, -91}, {10, 79}, {-11, 43}, {-94, 98}, {79, 42}, {51, 71}, {4, -30}, {2, 74}, {4, 10}, {61, 98}, {57, 98}, {46, 43}, {-16, 72}, {53, -69}, {54, -96}, {22, 0}, {-7, 92}, {-69, 80}, {68, -73}, {-24, -92}, {-21, 82}, {32, -1}, {-6, 16}, {15, -29}, {70, -66}, {-85, 80}, {50, -3}, {6, 13}, {-30, -98}, {-30, 59}, {-67, 40}, {17, 72}, {79, 82}, {89, -100}, {2, 79}, {-95, -46}, {17, 68}, {-46, 81}, {-5, -57}, {7, 58}, {-42, 68}, {19, -95}, {-17, -76}, {81, -86}, {79, 78}, {-82, -67}, {6, 0}, {35, -16}, {98, 83}, {-81, 100}, {-11, 46}, {-21, -38}, {-30, -41}, {86, 18}, {-68, 6}, {80, 75}, {-96, -44}, {-19, 66}, {21, 84}, {-56, -64}, {39, -15}, {0, 45}, {-81, -54}, {-66, -93}, {-4, 2}, {-42, -67}, {-15, -33}, {1, -32}, {-74, -24}, {7, 18}, {-62, 84}, {19, 61}, {39, 79}, {60, -98}, {-76, 45}, {58, -98}, {33, 26}, {-74, -95}, {22, 30}, {-68, -62}, {-59, 4}, {-62, 35}, {-78, 80}, {-82, 54}, {-42, 81}, {56, -15}, {32, -19}, {34, 93}, {57, -100}, {-1, -87}, {68, -26}, {18, 86}, {-55, -19}, {-68, -99}, {-9, 47}, {24, 94}, {92, 97}, {5, 67}, {97, -71}, {63, -57}, {-52, -14}, {-86, -78}, {-17, 92}, {-61, -83}, {-84, -10}, {20, 13}, {-68, -47}, {7, 28}, {66, 89}, {-41, -17}, {-14, -46}, {-72, -91}, {4, 52}, {-17, -59}, {-85, -46}, {-94, -23}, {-48, -3}, {-64, -37}, {2, 26}, {76, 88}, {-8, -46}, {-19, -68}},
5140,
},
{
[]int{2, 2, 5, -1, -1},
[][]int{{-3, 5}, {-2, 5}, {3, 2}, {5, 0}, {-2, 0}, {-1, 5}, {5, -3}, {0, 0}, {-4, 4}, {-3, 4}},
81,
},
{
[]int{4, -1, 4, -2, 4},
[][]int{{2, 4}},
65,
},
{
[]int{4, -1, 3},
[][]int{},
25,
},
// 可以有多个 testcase
}
func Test_robotSim(t *testing.T) {
ast := assert.New(t)
for _, tc := range tcs {
fmt.Printf("~~%v~~\n", tc)
ast.Equal(tc.ans, robotSim(tc.commands, tc.obstacles), "输入:%v", tc)
}
}
func Benchmark_robotSim(b *testing.B) {
for i := 0; i < b.N; i++ {
for _, tc := range tcs {
robotSim(tc.commands, tc.obstacles)
}
}
}