This repository has been archived by the owner on Dec 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathlinear-path.lisp
executable file
·78 lines (71 loc) · 4.02 KB
/
linear-path.lisp
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
(in-package #:weir-tests)
(defun %test-linear-path ()
(let ((apath (lin-path:make (rnd:nin-rect 33 300d0 300d0))))
(do-test
(lin-path:pos* apath (rnd:rndspace 20 0d0 1d0))
(list (vec:vec -9.438347648872167d0 -175.225149152222d0)
(vec:vec 116.89881659438566d0 -26.809245714782996d0)
(vec:vec -65.36161703283702d0 185.74828332183736d0)
(vec:vec -105.48322687473d0 -9.890268437414548d0)
(vec:vec 267.68539603378895d0 81.3043899209714d0)
(vec:vec -132.40421434059442d0 195.15630286314308d0)
(vec:vec -97.44930816032483d0 177.55858394044853d0)
(vec:vec 266.5652538517507d0 -0.12485684153419593d0)
(vec:vec 164.1995002008751d0 105.86496577929238d0)
(vec:vec -26.728304107996706d0 -204.3541153362095d0)
(vec:vec -177.47950464695646d0 150.76511064797404d0)
(vec:vec 14.766557204046116d0 -93.04887526533449d0)
(vec:vec 91.93635520751945d0 -108.1690462450528d0)
(vec:vec 170.5374458058014d0 143.51512360627012d0)
(vec:vec -104.24865074429103d0 64.19229247140761d0)
(vec:vec 13.85574261994833d0 168.04649139453574d0)
(vec:vec 90.01632000058807d0 -106.09734739384757d0)
(vec:vec 33.09742525543997d0 -109.45542035126164d0)
(vec:vec -190.2979189072196d0 196.3589224835634d0)
(vec:vec 125.93727427384897d0 112.82256366840846d0)))
(do-test
(lin-path:pos* apath (rnd:rndspace 5 0d0 1d0))
(list (vec:vec -187.5705364827427d0 158.41359771733312d0)
(vec:vec 187.35293276640311d0 -29.852529549097056d0)
(vec:vec -5.522855469879147d0 -168.62858891534736d0)
(vec:vec 55.13044208493619d0 156.21422990619857d0)
(vec:vec 200.2368412092638d0 114.61642591669907d0))))
(let ((apath (lin-path:make (rnd:nin-rect 12 300d0 300d0) :closed t)))
(do-test
(lin-path:pos* apath (rnd:rndspace 20 0d0 1d0))
(list (vec:vec 27.920854552669738d0 72.74990940914415d0)
(vec:vec 20.347116016838214d0 60.03424910291827d0)
(vec:vec 90.54515305308234d0 56.63138904522498d0)
(vec:vec -25.3222203310782d0 -183.1677471273439d0)
(vec:vec 211.41460164089594d0 295.28993948962716d0)
(vec:vec -55.15685103609334d0 -219.1553983499264d0)
(vec:vec 3.5116120355960163d0 -212.55092858244558d0)
(vec:vec 22.934457423851427d0 -210.36444561614667d0)
(vec:vec -16.230443414179007d0 -1.3763499500023784d0)
(vec:vec -114.29745056967332d0 -38.66755954976239d0)
(vec:vec 120.46277829407285d0 -199.3854150955505d0)
(vec:vec 161.48480036064814d0 -188.4310964342001d0)
(vec:vec -250.3371679969546d0 59.6286189885981d0)
(vec:vec 211.5358543713892d0 296.19316067596804d0)
(vec:vec 141.119808254249d0 262.8012870055113d0)
(vec:vec 76.43639032666181d0 -34.81227407014987d0)
(vec:vec -83.50672601072395d0 -3.0479216467079766d0)
(vec:vec 84.97443810482987d0 -186.13693462985242d0)
(vec:vec -66.5778671576494d0 -220.44109345321482d0)
(vec:vec -3.2600089472467175d0 192.22456394293548d0)))
(do-test
(lin-path:pos* apath (rnd:rndspace 5 0d0 1d0))
(list (vec:vec -79.39852989264577d0 -107.43017344211452d0)
(vec:vec -55.656453545073305d0 162.25392644684086d0)
(vec:vec 96.08643196039844d0 -190.68148658414955d0)
(vec:vec -87.73518977972896d0 -57.86025399494548d0)
(vec:vec -11.885662338531773d0 5.918166490124946d0)))
(do-test
(lin-path:rndpos apath 5)
(list (vec:vec 129.62232574809065d0 -187.47570071925472d0)
(vec:vec 196.2965520484057d0 182.6743915136004d0)
(vec:vec 95.34514262347875d0 -186.44790001400926d0)
(vec:vec 201.75690539451068d0 272.4593392134565d0)
(vec:vec 173.48377006092858d0 -193.41669665923908d0)))))
(define-file-tests test-linear-path ()
(test-title (%test-linear-path)))