KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_graphic_trim.cpp File Reference
#include <boost/test/unit_test.hpp>
#include <board.h>
#include <geometry/shape_arc.h>
#include <layer_ids.h>
#include <pcb_shape.h>
#include <pcb_track.h>
#include <tools/graphic_trim.h>
#include <limits>

Go to the source code of this file.

Functions

static PCB_SHAPE makeLine (const VECTOR2I &aStart, const VECTOR2I &aEnd, PCB_LAYER_ID aLayer=Dwgs_User)
 
static PCB_SHAPE makeArc (const VECTOR2I &aCenter, const VECTOR2I &aStart, double aAngle, PCB_LAYER_ID aLayer=Dwgs_User)
 
 BOOST_AUTO_TEST_CASE (OneBoundaryRemovesThePointerSide)
 
 BOOST_AUTO_TEST_CASE (TwoBoundariesRemoveMiddleAndRetainExteriorPieces)
 
 BOOST_AUTO_TEST_CASE (ChoosesNearestIntersectionsAroundClickedInterval)
 
 BOOST_AUTO_TEST_CASE (TrimsLineAtFiniteArcBoundary)
 
 BOOST_AUTO_TEST_CASE (TrimsArcAtFiniteLineBoundaries)
 
 BOOST_AUTO_TEST_CASE (TrimsArcAtFiniteArcBoundaryAndPreservesWinding)
 
 BOOST_AUTO_TEST_CASE (RejectsTrackSourceAndIgnoresTracksAndWrongLayerBoundaries)
 
 BOOST_AUTO_TEST_CASE (LockedSourceIsRejectedButLockedBoundaryIsEligible)
 
 BOOST_AUTO_TEST_CASE (RefusesCollinearOverlapAndPointerOnCut)
 
 BOOST_AUTO_TEST_CASE (TangentBoundaryStillCuts)
 
 BOOST_AUTO_TEST_CASE (ShapeBoundedOnlyAtAnEndIsRemovedWhole)
 
 BOOST_AUTO_TEST_CASE (EitherArmOfATeeTrimsAtTheStem)
 
 BOOST_AUTO_TEST_CASE (PreviewCarriesTheRemovedSpan)
 
 BOOST_AUTO_TEST_CASE (IgnoresUnrelatedCollinearAndTangentGeometry)
 
 BOOST_AUTO_TEST_CASE (OverlapDoesNotSpoilAUsableCut)
 
 BOOST_AUTO_TEST_CASE (HandlesBoardScaleParameter)
 
 BOOST_AUTO_TEST_CASE (DegenerateSourcesReportWhyTheyWereRefused)
 
 BOOST_AUTO_TEST_CASE (BoundariesCrossingAtOnePointYieldOneCut)
 
static PCB_SHAPE makeCircle (const VECTOR2I &aCenter, int aRadius, PCB_LAYER_ID aLayer=Dwgs_User)
 
static PCB_SHAPE makeRectangle (const VECTOR2I &aCorner, const VECTOR2I &aOpposite, PCB_LAYER_ID aLayer=Dwgs_User)
 
 BOOST_AUTO_TEST_CASE (CircleTrimsIntoAnArc)
 
 BOOST_AUTO_TEST_CASE (CircleNeedsTwoCutsToOpen)
 
 BOOST_AUTO_TEST_CASE (RectangleTrimsIntoLines)
 
 BOOST_AUTO_TEST_CASE (FlatRectangleIsRefused)
 
 BOOST_AUTO_TEST_CASE (RectangleSideWithNoCrossingIsRefused)
 
 BOOST_AUTO_TEST_CASE (CirclesAndRectanglesAreBoundariesToo)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/24]

BOOST_AUTO_TEST_CASE ( BoundariesCrossingAtOnePointYieldOneCut )

◆ BOOST_AUTO_TEST_CASE() [2/24]

BOOST_AUTO_TEST_CASE ( ChoosesNearestIntersectionsAroundClickedInterval )

◆ BOOST_AUTO_TEST_CASE() [3/24]

BOOST_AUTO_TEST_CASE ( CircleNeedsTwoCutsToOpen )

◆ BOOST_AUTO_TEST_CASE() [4/24]

BOOST_AUTO_TEST_CASE ( CirclesAndRectanglesAreBoundariesToo )

◆ BOOST_AUTO_TEST_CASE() [5/24]

◆ BOOST_AUTO_TEST_CASE() [6/24]

BOOST_AUTO_TEST_CASE ( DegenerateSourcesReportWhyTheyWereRefused )

Definition at line 337 of file test_graphic_trim.cpp.

References DEGENERATE, makeLine(), and GRAPHIC_TRIM_PLANNER::Plan().

◆ BOOST_AUTO_TEST_CASE() [7/24]

BOOST_AUTO_TEST_CASE ( EitherArmOfATeeTrimsAtTheStem )

◆ BOOST_AUTO_TEST_CASE() [8/24]

BOOST_AUTO_TEST_CASE ( FlatRectangleIsRefused )

◆ BOOST_AUTO_TEST_CASE() [9/24]

BOOST_AUTO_TEST_CASE ( HandlesBoardScaleParameter )

◆ BOOST_AUTO_TEST_CASE() [10/24]

BOOST_AUTO_TEST_CASE ( IgnoresUnrelatedCollinearAndTangentGeometry )

◆ BOOST_AUTO_TEST_CASE() [11/24]

BOOST_AUTO_TEST_CASE ( LockedSourceIsRejectedButLockedBoundaryIsEligible )

◆ BOOST_AUTO_TEST_CASE() [12/24]

BOOST_AUTO_TEST_CASE ( OneBoundaryRemovesThePointerSide )

◆ BOOST_AUTO_TEST_CASE() [13/24]

BOOST_AUTO_TEST_CASE ( OverlapDoesNotSpoilAUsableCut )

◆ BOOST_AUTO_TEST_CASE() [14/24]

BOOST_AUTO_TEST_CASE ( PreviewCarriesTheRemovedSpan )

◆ BOOST_AUTO_TEST_CASE() [15/24]

BOOST_AUTO_TEST_CASE ( RectangleSideWithNoCrossingIsRefused )

◆ BOOST_AUTO_TEST_CASE() [16/24]

BOOST_AUTO_TEST_CASE ( RectangleTrimsIntoLines )

◆ BOOST_AUTO_TEST_CASE() [17/24]

BOOST_AUTO_TEST_CASE ( RefusesCollinearOverlapAndPointerOnCut )

◆ BOOST_AUTO_TEST_CASE() [18/24]

BOOST_AUTO_TEST_CASE ( RejectsTrackSourceAndIgnoresTracksAndWrongLayerBoundaries )

◆ BOOST_AUTO_TEST_CASE() [19/24]

BOOST_AUTO_TEST_CASE ( ShapeBoundedOnlyAtAnEndIsRemovedWhole )

◆ BOOST_AUTO_TEST_CASE() [20/24]

BOOST_AUTO_TEST_CASE ( TangentBoundaryStillCuts )

◆ BOOST_AUTO_TEST_CASE() [21/24]

◆ BOOST_AUTO_TEST_CASE() [22/24]

BOOST_AUTO_TEST_CASE ( TrimsArcAtFiniteLineBoundaries )

◆ BOOST_AUTO_TEST_CASE() [23/24]

BOOST_AUTO_TEST_CASE ( TrimsLineAtFiniteArcBoundary )

◆ BOOST_AUTO_TEST_CASE() [24/24]

BOOST_AUTO_TEST_CASE ( TwoBoundariesRemoveMiddleAndRetainExteriorPieces )

◆ makeArc()

◆ makeCircle()

static PCB_SHAPE makeCircle ( const VECTOR2I & aCenter,
int aRadius,
PCB_LAYER_ID aLayer = Dwgs_User )
static

Definition at line 363 of file test_graphic_trim.cpp.

References CIRCLE, circle(), and Dwgs_User.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().

◆ makeLine()

◆ makeRectangle()

static PCB_SHAPE makeRectangle ( const VECTOR2I & aCorner,
const VECTOR2I & aOpposite,
PCB_LAYER_ID aLayer = Dwgs_User )
static