Root/poly2d/test/area

1#!/bin/sh
2. ./Common
3
4###############################################################################
5
6tst "area without holes, constant offset" <<EOF
7struct p2d *p = p2d_new();
8struct p2d *q;
9
10p2d_append(p, v2d_new(0, 0));
11p2d_append(p, v2d_new(5.5, 0));
12p2d_append(p, v2d_new(5.5, 4.5));
13p2d_append(p, v2d_new(0, 4.5));
14p2d_close(p);
15q = p2d_area(p, 1, 1);
16p2d_write_gnuplot_all(stdout, q);
17EOF
18
19expect <<EOF
201 1
214.5 1
224.5 3.5
231 3.5
241 1
25
262 2
273.5 2
283.5 2.5
292 2.5
302 2
31
32EOF
33
34#------------------------------------------------------------------------------
35
36tst "area without holes, offset with overlap" <<EOF
37struct p2d *p = p2d_new();
38struct p2d *q;
39
40p2d_append(p, v2d_new(0, 0));
41p2d_append(p, v2d_new(5.5, 0));
42p2d_append(p, v2d_new(5.5, 4.5));
43p2d_append(p, v2d_new(0, 4.5));
44p2d_close(p);
45q = p2d_area(p, 1, 0.7);
46p2d_write_gnuplot_all(stdout, q);
47EOF
48
49expect <<EOF
501 1
514.5 1
524.5 3.5
531 3.5
541 1
55
561.7 1.7
573.8 1.7
583.8 2.8
591.7 2.8
601.7 1.7
61
62EOF
63
64#------------------------------------------------------------------------------
65
66tst "area with one symmetric hole" <<EOF
67struct p2d *pl, *p;
68struct p2d *q;
69
70pl = p = p2d_new();
71p2d_append(p, v2d_new(0, 0));
72p2d_append(p, v2d_new(20, 0));
73p2d_append(p, v2d_new(20, 10));
74p2d_append(p, v2d_new(0, 10));
75p2d_close(p);
76
77p = p->next = p2d_new();
78p2d_append(p, v2d_new(2, 2));
79p2d_append(p, v2d_new(2, 8));
80p2d_append(p, v2d_new(18, 8));
81p2d_append(p, v2d_new(18, 2));
82p2d_close(p);
83
84q = p2d_area(pl, 0.7, 0.7);
85p2d_write_gnuplot_all(stdout, q);
86EOF
87
88expect <<EOF
890.7 0.7
9019.3 0.7
9119.3 9.3
920.7 9.3
930.7 0.7
94
951.3 1.3
961.3 8.7
9718.7 8.7
9818.7 1.3
991.3 1.3
100
101EOF
102
103###############################################################################
104

Archive Download this file

Branches:
master



interactive