Commit Graph

712 Commits

Author SHA1 Message Date
Jon Evans b4342d813b Fix SHAPE_LINE_CHAIN::Slice when end is an arc followed by a point
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9770
2021-11-25 10:05:33 -05:00
Jeff Young ba6ae4fa9b Kicad has many plugins. This one is for the pcb. 2021-11-25 12:56:46 +00:00
Jon Evans 1e8284bc1a Add ability to seed the KIID generator
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9689
2021-11-20 14:19:29 -05:00
Roberto Fernandez Bautista 8f1126bdfc Fix qa test utility GEOM_TEST::IsOutlineValid 2021-11-20 16:44:52 +00:00
Roberto Fernandez Bautista 389cb7d4bc Add SHAPE_LINE_CHAIN tests for arcs with shared points 2021-11-20 16:44:52 +00:00
Roberto Fernandez Bautista 17407b850c Add qa tests for SHAPE_POLY_SET arcs that wrap around from end to start 2021-11-20 16:44:52 +00:00
jean-pierre charras 3495135b08 Fix compil issue in QA (missing function) 2021-11-18 14:57:56 +01:00
Roberto Fernandez Bautista 3f60765016 Fix incorrect tolerance applied to CollideArcToPolygonApproximation qa test 2021-11-15 14:04:37 +00:00
Roberto Fernandez Bautista d47bd3a04d Rewrite broken collision routine SHAPE_ARC::Collide( SEG& aSeg ) 2021-11-15 14:04:37 +00:00
Roberto Fernandez Bautista 9b43689a76 Add SHAPE_ARC to SEG collision test cases 2021-11-15 14:04:37 +00:00
Roberto Fernandez Bautista ad3b4f25c2 Add tests for shape_line_chain collision containing arcs 2021-11-15 14:04:37 +00:00
Jeff Young 92e2f51f57 Fix duplicate UUIDs in test cases. 2021-11-09 16:12:14 +00:00
Mikolaj Wielgus e1cc7cfbe0 Change wire width from 5 mils back to 6 mils
These were remnants of https://gitlab.com/kicad/code/kicad/-/issues/7865
2021-11-07 14:32:27 +00:00
Mikolaj Wielgus 0260961fe3 Add test for EDA_RECT::Inflate 2021-11-06 18:23:02 +00:00
Johannes Pfister 64f77b3596 PNS: Add support for 90-degree corner modes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6902
2021-11-03 02:14:23 +00:00
Jeff Young eaf10a04dd Improved naming. 2021-11-02 20:07:34 +00:00
Peter Montgomery 71b07b59c5 Pcbnew: Added "All Items" clear/set to "Filter Selection" dialog 2021-10-29 09:56:14 +00:00
Floris Lambrechts f72f637a06 pcbnew: Add basic Python unit tests for CONNECTIVITY_DATA 2021-10-22 16:00:18 +00:00
jean-pierre charras c4e775c694 Fix bug in qa, drc_proto.h (link issue).
A virtual pure function was called inside drc_proto.h.
2021-10-16 10:55:19 +02:00
Jeff Young 81e72bafd7 Fix test case. 2021-10-15 21:27:16 +01:00
Jeff Young b52529521e Replace individual LIB_* shapes with LIB_SHAPE (based on EDA_SHAPE).
Also moves to more capable FILL_T model that can be shared.
2021-10-15 12:45:43 +01:00
Jeff Young 9b9e379aa0 Overhaul arc internal model to not over-specify information. 2021-10-15 12:45:43 +01:00
Seth Hillbrand 9a8d1246cc We don't keep a CHANGELOG.TXT
Direct interested readers to AUTHORS.TXT instead.
2021-10-05 19:46:53 -07:00
Seth Hillbrand 548e5f49bd Clean up unused variable usage
Unused variables in function calls can be commented out.  Unused
return variables get a new routine `ignore_unused()` that silences the
warnings with zero overhead.
2021-10-05 10:00:30 -07:00
Jeff Young 701623b50e Fix compile error in mocks. 2021-10-03 22:48:40 +01:00
Roberto Fernandez Bautista 4abee7c2eb Fix SHAPE_LINE_CHAIN::Split when inserting a point on an arc
Ensure the arc is split into two at the point specified.

Partly fixes https://gitlab.com/kicad/code/kicad/-/issues/9023
Additional work required to ensure that the shove state is preserved.
2021-09-26 15:15:51 +01:00
Jeff Young bf145dd633 Confine allow-locked-pad-selection-even-when-filtered to single-select.
Also make sure text in a locked footprint is not selected if the locked
items filter is unset.

Fixes https://gitlab.com/kicad/code/kicad/issues/9227
2021-09-24 18:58:22 +01:00
Roberto Fernandez Bautista dc1fd3d9ba PNS test app: Add logging information for curved track routing 2021-09-20 20:35:24 +01:00
Jeff Young b84d1456d5 KIFACE_I -> KIFACE_BASE. 2021-09-14 23:45:14 +01:00
Seth Hillbrand 60a593b44b Fix defines for qa mock 2021-09-05 19:28:33 -07:00
Jeff Young a397e85589 Implement PTH/NPTH/courtyard collision tests.
Fixes https://gitlab.com/kicad/code/kicad/issues/9081
2021-09-04 00:16:26 +01:00
Seth Hillbrand 8a305eec32 Remove broken RefDesStringCompare
This function attempted a poor-man's natural compare but it assumed
specific structure of the string.  This broke for strings with
numberings that looked like decimals.

Instead, we use our natural string comparison function and remove the
references to this older function and its similar elements.

Fixes https://gitlab.com/kicad/code/kicad/issues/9067
2021-09-01 11:48:01 -07:00
Seth Hillbrand 3a7721d41c Remove now-invalid mock call 2021-08-27 13:08:10 -07:00
Roberto Fernandez Bautista ed39b33d74 Fix edge case in CIRCLE::Intersect that caused a divide-by-zero crash
Also add some additional test cases.
2021-08-25 19:11:19 +01:00
Jeff Young e6ca9837a2 Clear numbers from non-numberable pads and don't run DRC on them.
This was also the last straw on the misnamed PAD::GetName() and
PAD::SetName(), which are now PAD::GetNumber() and PAD::SetNumber().

Fixes https://gitlab.com/kicad/code/kicad/issues/9017
2021-08-24 01:03:06 +01:00
Jeff Young 1e23ce1c95 Pull some fixes back from 7.0.
1) An earlier 6.0 fix to apply pad clearance overrides to NPTH pads
got broken, so this replaces it.

2) Allow min/max/opt to be set by different rules.

3) Fixes a bug where board minimum enforcement over a local override
didn't get the right message text.
2021-08-21 16:43:11 +01:00
Jeff Young 1a252b4f96 Add a compile error for ill-defined rules, and more performance.
Also adds const-safety to GetBoard().
2021-08-16 12:14:17 +01:00
Jeff Young 41619ebbe2 Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
Jon Evans 80355f04a9 Fix SHAPE_LINE_CHAIN::Replace at end of chain 2021-08-13 16:59:45 -04:00
Roberto Fernandez Bautista d9cf939ba1 SHAPE_LINE_CHAIN::Replace Don't call front() or back() if empty
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8949
2021-08-12 16:32:06 +01:00
Roberto Fernandez Bautista 22df01183d Fix edge cases in CIRCLE::Intersect that were causing KiROUND overflow 2021-08-11 17:31:27 +01:00
Roberto Fernandez Bautista c8944286c0 Fix qa_pcbnew memory dump in msvc
Quick fix for now as it was frustrating to run qa_pcbnew
and not be able to see the output
2021-08-10 21:29:25 +01:00
Jeff Young a208dac8d8 Convert hole clearance tests from NPTH holes to all holes. 2021-08-09 22:26:00 +01:00
Roberto Fernandez Bautista ae87dc686a Fix SHAPE_LINE_CHAIN::NearestPoint when aAllowInternalShapePoints=false
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8770
2021-08-08 20:58:20 +01:00
Roberto Fernandez Bautista fb3a6ef2db Add qa Test for SHAPE_LINE_CHAIN::Slice 2021-08-08 19:09:54 +01:00
Jeff Young 1332208ab1 Update test expectation. 2021-08-06 22:24:33 +01:00
Roberto Fernandez Bautista eaf8eb284a Add true arc-to-polyline collisions 2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista dd65ce9523 Simplify & move new arc collision code into Kimath library
Don't need to check intersections with the circle, just fix the
calculated "projected" point from the end points.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8234
2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista b6be10f05c Fix CIRCLE::Intersect( const SEG& aSeg ) and add unit tests 2021-08-05 17:45:12 +01:00
Tomasz Wlostowski 9c15ba9673 qa: arc playground with fixed endpoint corner case 2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista 2573ac19a5 Fix "false intersection" case and attempt to fix "missing intersection" 2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista 318435aedb Add more test cases: simulate zone fill around arc + diff pair meander 2021-08-05 17:45:11 +01:00
Roberto Fernandez Bautista f2925dc6cb Added a few more test cases 2021-08-05 17:45:11 +01:00
Tomasz Wlostowski 9922e85ecf arc collision playground: some cleanup 2021-08-05 17:45:11 +01:00
Tomasz Wlostowski 7e94f85870 arc collision playground 2021-08-05 17:45:11 +01:00
Tomasz Wlostowski 539154466d playground with arc2arc collision 2021-08-05 17:45:11 +01:00
Jeff Young c5e195bdff Cleanup (includes and formatting). 2021-08-03 18:37:23 +01:00
Wayne Stambaugh 813d8f0957 Fix broken QA build on Linux. 2021-08-03 12:02:42 -04:00
Jeff Young c00f4ed5d2 Add regression tests for track cleaner. 2021-08-03 16:17:18 +01:00
Jeff Young 43523df843 Measure distance from pad center, not pad hull.
Otherwise we think the wrong end of really short track segments is
connected to the pad, leaving the other end dangling.

Fixes https://gitlab.com/kicad/code/kicad/issues/8909
2021-08-02 22:42:54 +01:00
Jeff Young 2a2dc1c0ff Fix false test failures. 2021-08-01 22:18:18 +01:00
Jeff Young 878538abff Run each Boost test with it's own fixture. 2021-07-31 20:12:52 +01:00
Jeff Young faa1ff4ec6 Add false-negative DRC tests (and fix first bug found by them). 2021-07-31 16:41:44 +01:00
Jeff Young bceb3794f8 Remove ZONE_FILLER_TOOL since it's not really necessary.
It was causing intermittent failures on GTK.  We'll no doubt want
tools in the QA framework at some point, but probably not necessary
for 6.0....
2021-07-31 01:50:42 +01:00
Seth Hillbrand 5155093ec0 Fix compile issue on gcc 2021-07-30 15:13:34 -07:00
Jeff Young 8d6cd4ad99 Add a bunch more zone fill and DRC regression tests.
Also tries to fix a compile issue on gcc.
2021-07-30 21:15:21 +01:00
Jeff Young b8bb04c432 Release project before potentially reloading project and board. 2021-07-30 18:37:14 +01:00
Jeff Young 8c69a856fc Add zone filler tests.
One test has pads of a bunch of different shapes and provokes some
errors to make sure they're caught.

The others are all past issues with the zone filler to make sure we
don't suffer any regressions.  (They should all just pass with no DRC
errors.)
2021-07-30 17:09:24 +01:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young f221220fe2 Rename layer ids file.
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Wayne Stambaugh 43cb710297 Fix broken PNS router QA build. 2021-07-27 15:07:56 -04:00
Wayne Stambaugh 37b200cb3e Pass wxString objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
Jeff Young 531f5480a7 Reduce line-breaks and increase SNR. 2021-07-24 14:25:59 +01:00
jean-pierre charras 7869ac7e67 fix typo in commit f16239d 2021-07-22 20:45:22 +02:00
jean-pierre charras f16239d326 QA test: try to fix a compil problem on MSVC only 2021-07-22 20:41:37 +02:00
jean-pierre charras e35b469f30 QA tests: fix a few compil issues due to code change. 2021-07-22 18:18:12 +02:00
Jeff Young 4319d92a12 Fix test breakage from dialog onClose() change. 2021-07-22 15:55:55 +01:00
Jeff Young 0fb864d596 Pull some name changes back from 7.0 to ease merging. 2021-07-21 20:58:59 +01:00
Wayne Stambaugh bf80b9c04c Last of the NULL expunging. 2021-07-20 10:32:22 -04:00
Jeff Young fbd267665b Fix test case. 2021-07-08 18:23:28 +01:00
Jeff Young a4263ebce5 Clean up Altium special string handling
1) Fix a couple of bugs in case processing
2) Make case processing more explicit to prevent more (1)
3) Move label processing to AltiumSpecialStringsToKiCadVariables
4) Strip double-quotes from special strings (and add test cases)
5) Change PROJECTNAME to just filename, not full path
6) PROJECTREV and REVISION are two different things
7) Add support for Altium's Application_BuildNumber
8) Fix some issues in trimming spaces around special strings
2021-07-08 15:34:38 +01:00
Wayne Stambaugh 9d348d7e6d Coverity issue fixes. 2021-07-06 13:32:34 -04:00
Roberto Fernandez Bautista cee5920d5c Remove dead code (SHAPE_LINE_CHAIN::DetectArcs) 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 778c64de88 Implement ClearArcs() and check curved polys don't get a booleanOp
We cannot (yet) support passing several curved outlines through clipper.
In these cases, the caller should ClearArcs() before processing.
2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 260a9d0540 Use ZFillFunction to modify arcs post clipper (does not fully work yet)
Added a unit test to verify union and intersection of polygons result
in desired results: subject + clip - intersect == union
2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista a9a8aa8243 SHAPE_LINE_CHAIN splitArc on Insert, Remove and Replace
This ensures that the arc shapes remain correct after removing
a point belonging to an arc or inserting a point in the middle
of an arc.

Simplify implementation of Replace( ..., aP ). Now a Remove
operation followed by an Insert operation.

Improve QA test for SHAPE_LINE_CHAIN Append, Insert and Replace

Implement SHAPE_LINE_CHAIN::splitArc to break up an arc into two

Implement SHAPE_ARC::ConstructFromStartEndCenter and add qa test
2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 2f069c0b19 Add test for detecting arcs post clipper 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista e54a44e1d3 Add qa test for SHAPE_POLY_SET::Simplify() 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 3ee8b4825c Implement SHAPE_LINE_CHAIN::DetectArcs and add qa test 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 14c3d9055e Add CIRCLE::Contains( VECTOR2I aP ) and add unit tests 2021-07-03 19:37:50 +00:00
Wayne Stambaugh 175b474c3e Coverity issue fixes.
Fixes issues #280412, #314755, #329615, #332459, #332157, #332167,
2021-06-30 18:08:49 -04:00
Jeff Young 5c21f93803 Consistency in progress and error messages. 2021-06-26 13:23:43 +01:00
Thomas Pointhuber e50eaed7b9 altium: Improve parsing of UTF-8 data
This is an implementation based on d4ccec05 from @fxtentacle
2021-06-26 13:58:56 +02:00
Jeff Young 81fc710a5d Use consistent terminology.
Fixes https://gitlab.com/kicad/code/kicad/issues/8681
2021-06-26 10:11:41 +01:00
Roberto Fernandez Bautista cd130be2db Fix PNS Test App and enable build option in CI 2021-06-24 11:24:50 +00:00
Jeff Young 3d7e18561d Checkpoint of app-specific single-instance checking.
(I'm about to nuke single-instance checking entirely, but wanted to
make sure this was captured in GIT somewhere.)
2021-06-20 21:37:02 +01:00
Tomasz Wlostowski 24e7924997 qa: fixed building of the P&S debug tool after the changes/refactoring of the 3D viewer code. The tool can now be built
if KICAD_BUILD_PNS_DEBUG_TOOL is ON.
2021-06-19 23:21:23 +02:00
Jeff Young 89718dd3ba Naming conventions. 2021-06-19 19:36:53 +01:00
Wayne Stambaugh ee3eac325d Expunge the use of the word part from Eeschema code. 2021-06-15 08:32:11 -04:00
Wayne Stambaugh 71c183d7bb Rename LIB_PART to LIB_SYMBOL. 2021-06-14 07:11:17 -04:00