pcb has two testing frameworks: * [[pcb:unit_tests | Unit Tests]] \\ The first uses the [[https://developer.gnome.org/glib/stable/glib-Testing.html| 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. * Application tests \\ 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. ====To Do List==== ===Geometry Tests=== All of the geometry functions need tests. I've been trying to compile a list of functions that need tests. Many of these are indirectly tested through the [[pcb:drc| DRC tests]], but that isn't really as thorough as it ought to be. * search.c * IsPointOnLine * IsPointOnPin * IsPointOnArc * IsPointOnLineEnd * IsLineInRectangle * IsLineInQuadrangle * IsArcInRectangle * IsPointInPad * IsPointInBox * find.c * LineLineIntersect * LineArcIntersect * PinLineIntersect * LinePadIntersect * ArcPadIntersect * ArcArcIntersect * IsRatPointOnLineEnd * IsArcInPolygon * IsLineInPolygon * IsPadInPolygon * IsPolygonInPolygon * IS_PV_ON_RAT * IS_PV_ON_ARC * IS_PV_ON_PAD * polygon.c * IsPointInPolygon * IsPointInPolygonIgnoreHoles * IsRectangleInPolygon