|
KiCad PCB EDA Suite
|
#include <qa_utils/wx_utils/unit_test_utils.h>#include <pcbnew_utils/board_test_utils.h>#include <board.h>#include <footprint.h>#include <geometry/shape_utils.h>#include <zone.h>#include <zone_utils.h>Go to the source code of this file.
Classes | |
| struct | ZONE_TEST_FIXTURE |
Functions | |
| static std::unique_ptr< ZONE > | CreateSquareZone (BOARD_ITEM_CONTAINER &aParent, BOX2I aBox, PCB_LAYER_ID aLayer) |
| static std::unique_ptr< ZONE > | CreateSimilarZone (BOARD_ITEM_CONTAINER &aParent, const ZONE &aOther, PCB_LAYER_ID aLayer) |
| Create a similar zone (same outline) on a different layer. | |
| BOOST_AUTO_TEST_CASE (SingleLayer) | |
| BOOST_AUTO_TEST_CASE (MultipleLayers) | |
| BOOST_AUTO_TEST_CASE (RescuedLayers) | |
| During zone loading, the layer is set to Rescue if the layer is not found. | |
| BOOST_AUTO_TEST_CASE (RuleAreaInnerLayersExpandMode) | |
| Verify that a rule area on all inner copper layers does not produce a spurious layer validation error when the footprint uses the default EXPAND_INNER_LAYERS stackup mode. | |
| BOOST_AUTO_TEST_CASE (EmptyZoneGetPosition) | |
| Verify that GetPosition() on a zone with no outline vertices does not throw or crash. | |
| BOOST_AUTO_TEST_CASE (ZoneMergeNull) | |
| BOOST_AUTO_TEST_CASE (ZoneMergeNonNullNoMerge) | |
| BOOST_AUTO_TEST_CASE (ZoneMergeNonNullMerge) | |
| BOOST_AUTO_TEST_CASE (ZoneMergeMergeSameGeomDifferentOrder) | |
| BOOST_AUTO_TEST_CASE | ( | EmptyZoneGetPosition | ) |
Verify that GetPosition() on a zone with no outline vertices does not throw or crash.
Empty zones can be created by importers.
Regression test for https://gitlab.com/kicad/code/kicad/-/issues/23125
Definition at line 164 of file test_zone.cpp.
References BOOST_TEST(), F_Cu, ZONE::GetNumCorners(), ZONE::GetPosition(), and ZONE::SetLayer().
| BOOST_AUTO_TEST_CASE | ( | MultipleLayers | ) |
Definition at line 83 of file test_zone.cpp.
References B_Cu, BOOST_TEST(), F_Cu, ZONE::GetFirstLayer(), ZONE::GetLayer(), ZONE::IsOnCopperLayer(), ZONE::SetLayerSet(), and UNDEFINED_LAYER.
| BOOST_AUTO_TEST_CASE | ( | RescuedLayers | ) |
During zone loading, the layer is set to Rescue if the layer is not found.
This is not a UI-visible layer, so make sure it can still be retreived.
https://gitlab.com/kicad/code/kicad/-/issues/18553
Definition at line 103 of file test_zone.cpp.
References BOOST_TEST(), ZONE::GetFirstLayer(), ZONE::GetLayer(), ZONE::IsOnCopperLayer(), Rescue, and ZONE::SetLayer().
| BOOST_AUTO_TEST_CASE | ( | RuleAreaInnerLayersExpandMode | ) |
Verify that a rule area on all inner copper layers does not produce a spurious layer validation error when the footprint uses the default EXPAND_INNER_LAYERS stackup mode.
Regression test for https://gitlab.com/kicad/code/kicad/-/issues/23042
Definition at line 122 of file test_zone.cpp.
References FOOTPRINT::Add(), B_Cu, BOOST_TEST(), EXPAND_INNER_LAYERS, F_Cu, BOARD_ITEM::GetLayer(), LSET::InternalCuMask(), PCB_ZONE_T, RECURSE, FOOTPRINT::RunOnChildren(), BASE_SET::set(), ZONE::SetIsRuleArea(), ZONE::SetLayerSet(), FOOTPRINT::SetStackupMode(), EDA_ITEM::Type(), and LSET::UserDefinedLayersMask().
| BOOST_AUTO_TEST_CASE | ( | SingleLayer | ) |
Definition at line 71 of file test_zone.cpp.
References BOOST_AUTO_TEST_CASE(), BOOST_TEST(), F_Cu, ZONE::GetFirstLayer(), ZONE::GetLayer(), ZONE::IsOnCopperLayer(), and ZONE::SetLayer().
| BOOST_AUTO_TEST_CASE | ( | ZoneMergeMergeSameGeomDifferentOrder | ) |
Definition at line 223 of file test_zone.cpp.
References B_Cu, BOOST_REQUIRE(), BOOST_TEST(), CreateSimilarZone(), CreateSquareZone(), F_Cu, and MergeZonesWithSameOutline().
| BOOST_AUTO_TEST_CASE | ( | ZoneMergeNonNullMerge | ) |
Definition at line 206 of file test_zone.cpp.
References B_Cu, BOOST_REQUIRE(), BOOST_TEST(), CreateSimilarZone(), CreateSquareZone(), F_Cu, and MergeZonesWithSameOutline().
| BOOST_AUTO_TEST_CASE | ( | ZoneMergeNonNullNoMerge | ) |
Definition at line 192 of file test_zone.cpp.
References B_Cu, BOOST_TEST(), CreateSquareZone(), F_Cu, and MergeZonesWithSameOutline().
| BOOST_AUTO_TEST_CASE | ( | ZoneMergeNull | ) |
Definition at line 175 of file test_zone.cpp.
References BOOST_TEST(), F_Cu, and MergeZonesWithSameOutline().
|
static |
Create a similar zone (same outline) on a different layer.
Definition at line 57 of file test_zone.cpp.
References ZONE::Outline().
Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
|
static |
Definition at line 40 of file test_zone.cpp.
References KIGEOM::BoxToLineChain().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().