1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./style.css" />
6 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./design.css" />
7 <link rel=
"stylesheet" media=
"print" type=
"text/css" href=
"./print.css" />
9 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
14 pcb has two testing frameworks:
17 <li class=
"level1"><div class=
"li"> <a href=
"pcb-unit_tests.html" class=
"wikilink1" title=
"pcb-unit_tests.html"> Unit Tests
</a> <br/>
18 The first uses the glib testing framework to execute function and object low-level tests of the code directly. These tests are generally contained by the files defining the code to be tested.
</div>
20 <li class=
"level1"><div class=
"li"> Application tests
<br/>
21 The second uses the meager scriptability of pcb to test functions at a higher level. These tests are contained in the tests/ directory of the source tree, and are run using the run_tests.sh script.
</div>
25 <h3 id=
"todolist">To Do List
</h3>
30 <h4 id=
"geometrytests">Geometry Tests
</h4>
34 All of the geometry functions need tests.
35 I
've been trying to compile a list of functions that need tests. Many of these are indirectly tested through the
<a href=
"pcb-drc.html" class=
"wikilink1" title=
"pcb-drc.html"> DRC tests
</a>, but that isn
't really as thorough as it ought to be.
38 <li class=
"level1 node"><div class=
"li"> search.c
</div>
40 <li class=
"level2"><div class=
"li"> IsPointOnLine
</div>
42 <li class=
"level2"><div class=
"li"> IsPointOnPin
</div>
44 <li class=
"level2"><div class=
"li"> IsPointOnArc
</div>
46 <li class=
"level2"><div class=
"li"> IsPointOnLineEnd
</div>
48 <li class=
"level2"><div class=
"li"> IsLineInRectangle
</div>
50 <li class=
"level2"><div class=
"li"> IsLineInQuadrangle
</div>
52 <li class=
"level2"><div class=
"li"> IsArcInRectangle
</div>
54 <li class=
"level2"><div class=
"li"> IsPointInPad
</div>
56 <li class=
"level2"><div class=
"li"> IsPointInBox
</div>
60 <li class=
"level1 node"><div class=
"li"> find.c
</div>
62 <li class=
"level2"><div class=
"li"> LineLineIntersect
</div>
64 <li class=
"level2"><div class=
"li"> LineArcIntersect
</div>
66 <li class=
"level2"><div class=
"li"> PinLineIntersect
</div>
68 <li class=
"level2"><div class=
"li"> LinePadIntersect
</div>
70 <li class=
"level2"><div class=
"li"> ArcPadIntersect
</div>
72 <li class=
"level2"><div class=
"li"> ArcArcIntersect
</div>
74 <li class=
"level2"><div class=
"li"> IsRatPointOnLineEnd
</div>
76 <li class=
"level2"><div class=
"li"> IsArcInPolygon
</div>
78 <li class=
"level2"><div class=
"li"> IsLineInPolygon
</div>
80 <li class=
"level2"><div class=
"li"> IsPadInPolygon
</div>
82 <li class=
"level2"><div class=
"li"> IsPolygonInPolygon
</div>
84 <li class=
"level2"><div class=
"li"> IS_PV_ON_RAT
</div>
86 <li class=
"level2"><div class=
"li"> IS_PV_ON_ARC
</div>
88 <li class=
"level2"><div class=
"li"> IS_PV_ON_PAD
</div>
92 <li class=
"level1 node"><div class=
"li"> polygon.c
</div>
94 <li class=
"level2"><div class=
"li"> IsPointInPolygon
</div>
96 <li class=
"level2"><div class=
"li"> IsPointInPolygonIgnoreHoles
</div>
98 <li class=
"level2"><div class=
"li"> IsRectangleInPolygon
</div>