Commit Graph

1261 Commits

Author SHA1 Message Date
Jeff Young d96598c87c Add 12505 to the regression test suite.
Fixes https://gitlab.com/kicad/code/kicad/issues/12505
2023-03-06 10:26:59 +00:00
Wayne Stambaugh 4e99812145 Coverity fixes and code cleaning. 2023-03-04 13:02:05 -05:00
Seth Hillbrand bce402a01c Revert font spacing/tabs to the v6 model
While convoluted, this model matches as best we have found so far, the
alignment with scintilla.  The spacing is character size for N-1 of the
characters in the 4-space tab stops.  The final character is sized for
the actual space character in the stroke font (0.761905)

Fixes https://gitlab.com/kicad/code/kicad/issues/13791
2023-02-24 17:15:57 -08:00
JamesJCode 9dca70a773 Eeschema netlist output: Propagate NC across hierarchical schematics
Fixes #12580

Additionally does not export no_connect netlist annotation on pins
which are both connected to another pin and a NC item, unless all
connected pins are stacked at the symbol level.

Adds testing of pin types to netlist QA unit tests.
2023-02-25 00:02:46 +00:00
Mike Williams 959a19a461 Power Symbols: automatically fix mismatched legacy symbols, add tests
Has netlist generation test for legacy power symbols, and test for
fixing legacy mismatched power symbol text fields and invisible pin names.
2023-02-22 18:01:47 +00:00
Mike Williams 5995e0e516 Power Symbols: make value editable, use as netname
QA: update tests for editable power symbol values
2023-02-22 18:01:47 +00:00
Mike Williams ca5004b1d2 Power Symbols: rename IsPowerConnection to IsGlobalPower
It's kind of confusing because we have power type pins, and pins that
make global power nets as part of power symbols.
2023-02-22 18:01:47 +00:00
Jeff Young 68fe146861 Remove most of SIM_VALUE in favour of good old wxString.
This allows us to save the user's intent, including units, formatting,
and crucially variable references.
2023-02-22 10:45:27 +00:00
Ian McInerney be19e967dc Remove WX_COMPATIBILITY flag
Some classes had been originally designed to be usable separate from wx,
but over time our uses of the classes have become entertwined with wx
features (e.g. colors), and various changes have also leaked wx into the
classes unguarded. So just remove the option to hide wx in those classes
to simplify the code.
2023-02-22 01:44:06 +00:00
Ian McInerney bcb93e9aa7 Modernize setting of compiler definitions in CMake
add_compile_definitions was added in 3.12, and our minimum is now
greater than that.
2023-02-22 01:44:06 +00:00
Fabien Corona 2a3b70b7eb sim - Remember the option to save powers
Fixes #13978
2023-02-20 19:30:45 +01:00
Marek Roszko aacc9746e3 Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
jean-pierre charras 07f79208b9 Minor fixes: Coverity and compil minor warnings. 2023-02-18 13:04:43 +01:00
jean-pierre charras 05b68413f7 Fix a QA test for bitmaps, to work with latest changes in bitmap code. 2023-02-15 14:37:01 +01:00
Jeff Young 5c45b53f88 Rollback testing changes that were accidentally checked in. 2023-02-11 21:11:07 +00:00
Jeff Young bc108023b3 ADDED operating point overlay for SCH_EDIT_FRAME.
Fixes https://gitlab.com/kicad/code/kicad/issues/11253
2023-02-11 21:11:07 +00:00
Jeff Young 2a5bb71fbd ADDED operating point text variables for labels and symbols.
ADDED formatting for cursors and operationg points

Also fixes a bunch of bugs to make the new cursors work with .ac sims.

Fixes https://gitlab.com/kicad/code/kicad/issues/11253

Fixes https://gitlab.com/kicad/code/kicad/issues/6965
2023-02-11 21:11:07 +00:00
Jeff Young 09822c7f18 ADDED direct access to signals & cursors.
ADDED differential cursors.

Fixes https://gitlab.com/kicad/code/kicad/issues/4447

Fixes https://gitlab.com/kicad/code/kicad/issues/6221
2023-02-11 21:11:07 +00:00
Jon Evans e066454c61 Zones: use metric defaults and limits instead of mixed units
Update testcases to reflect new defaults
2023-02-11 07:39:29 -05:00
Jeff Young 8b03c093f9 Move potentiometer pin model to r0, wiper, r1, and remove flipping code.
Fixes https://gitlab.com/kicad/code/kicad/issues/13741
2023-02-02 16:22:13 +00:00
Jeff Young 9ca539b416 Remove TL072.031 from regression test. 2023-01-31 14:57:52 +00:00
Jeff Young c939b1ef76 Followed-by-3-digits doesn't guarantee a thousands separator.
Fixes https://gitlab.com/kicad/code/kicad/issues/13708
2023-01-30 21:22:48 +00:00
Roberto Fernandez Bautista 963e82ee7f CADSTAR PCB: Correctly handle anticlockwise arcs
Also add some qa tests for EDA_SHAPE::SetAngleAndEnd

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13626
2023-01-30 19:56:22 +00:00
Roberto Fernandez Bautista 0ecad1ef2e Add EDA_ANGLE::NormalizeNegative() and qa tests 2023-01-30 19:56:22 +00:00
Jon Evans 5beb79bbdc Disable spice directives test for now 2023-01-29 12:15:04 -05:00
Jon Evans 675b6b5d5c Fix logic error in ec4d377d
Also fixup goldens for importers for new default island mode
2023-01-27 10:16:56 -05:00
JamesJCode fef3274e8e Eeschema: ERC checks handle connections between a common sub-circuit
Fixes #10926

Contains the following changes:

    - Adds a new ERC_SCH_PIN_CONTEXT class which is used to provide deterministic
      comparison between items causing ERC violations (e.g. pins) when associated
      with a SCH_SHEET_PATH context.

    - Adds association of SCH_SHEET_PATHs for ERC_ITEMs and the sub-schematic items
      which caused an ERC violation. This allows correct display of markers on the
      sheets of interest only, and allows correct naming resolution and cross-probing
      from the ERC dialog.

    - Adds a new ERC_TREE_MODEL class, derived from RC_TREE_MODEL, which correctly
      resolves component references across heirarchical sheets using the associated
      SCH_SHEET_PATHs. This allows sheet-specific component references to be displayed
      correctly in the ERC results tree.

    - Updates SCH_MARKER to only draw sheet-specific markers on the sheet causing
      an ERC violation.

    - Increments the schematic file version.

    - When loading a schematic with legacy ERC exclusions, discards those of type
      ERCE_PIN_TO_PIN_WARNING, ERCE_PIN_TO_PIN_ERROR, ERCE_HIERACHICAL_LABEL, and
      ERCE_DIFFERENT_UNIT_NET as there is no safe way to automatically infer the
      information which is now stored with these exclusions (sheet paths for error
      location and related items). Requiring users to (once) re-add exclusions is
      preferable to silently incorrectly matching new ERC issues to legacy exclusions.
2023-01-24 14:11:01 +00:00
JamesJCode 24fd659bce Eeschema: QA schematic loader now traverses hierarchical sheets
(Assumes all nested schematics are in the same directory as the root schematic)
2023-01-24 14:11:01 +00:00
Seth Hillbrand 9861ed1a5f Don't special case power symbol re-annotation
When the designer asks to reset annotations, we reset all annotations
including power symbols.  This may create additional churn in the files
but only when requested and is useful to fix schematic errors

Fixes https://gitlab.com/kicad/code/kicad/issues/13138
2023-01-23 13:19:01 -08:00
jean-pierre charras f6d9a2574b Fix a QA simulation test on W1/msys2:
- Gives a bigger relative tolerance when comparing 2 values to pass some tests
- Fix error in test_sim_regressions.cpp for 3 TestNetlist() calls
2023-01-22 16:52:11 +01:00
Jeff Young 232e4d34f1 Use default error limits. They're already relative to the value. 2023-01-22 14:35:27 +00:00
Jeff Young 241dc0d96b Add SPICE regression test. 2023-01-21 19:32:25 +00:00
Jeff Young 259e382041 Add simulation regression test for legacy fixups. 2023-01-21 19:32:25 +00:00
Jeff Young e218c7109b Test case for immediate SBCKT models. 2023-01-21 19:32:25 +00:00
Jeff Young 6053b86a24 Add new spice regression test for windows path separators. 2023-01-21 19:32:25 +00:00
Marek Roszko b2421c7d9f Fix tiny bug in double 2 string formatting
- I forgot to handle the trailing dots when I added the fmt variant
- UIDouble2Str (the original) lacked the comma check
- Add unit test lol
2023-01-21 13:54:52 -05:00
Seth Hillbrand 6fa2eedb4b Avoid the obsolete GetNextPin() call
This iterated over all pins to find the pin after a given item.  Because
out pattern is consistently to iterate in the outer loop, this means
that we were an O(n^2) loop for the pins just to find their names.  This
affected very large parts (e.g. FPGAs) when switching sheets to display
2023-01-20 14:12:15 -08:00
Marek Roszko 358a05a2c8 msvc warning fix 2023-01-16 22:44:19 -05:00
jean-pierre charras 167e430fd9 Fix a compil issue in mocks.cpp. 2023-01-16 20:04:03 +01:00
Roberto Fernandez Bautista 355e817302 Move DefaultTransform definition to transform.cpp, so it can be shared 2023-01-15 19:17:51 +01:00
Roberto Fernandez Bautista d063eb431b Move FixupJunctions to SCHEMATIC 2023-01-15 19:17:50 +01:00
Tomasz Wlostowski 7da98a447a qa: enable tool framework for the P&S debug tool 2023-01-12 23:37:07 +01:00
Tomasz Wlostowski dd1a780d1f qa: follow up router API changes in the PNS log player/regression test tool 2023-01-12 23:37:07 +01:00
Seth Hillbrand 1c90eeaa5a Fix missing parameter in CADSTAR test 2023-01-10 16:48:07 -08:00
Roberto Fernandez Bautista ee6e86d1db Add conversion from CADSTAR SHAPE to SHAPE_POLY_SET 2023-01-10 22:28:01 +01:00
jean-pierre charras 31202a2eb3 Fix a compil issue in QA tests 2023-01-09 19:44:04 +01:00
Jeff Young e9a21130a8 Add a few more MARKUP_PARSER test cases. 2023-01-08 23:33:36 +00:00
Roberto Fernandez Bautista e7e151c46c MARKUP_PARSER grammar should match everything, even incomplete markup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13438
2023-01-09 00:17:11 +01:00
Marek Roszko 570fa246ae Fix typo in matrix3 multiply, add unit tests 2023-01-05 21:06:52 -05:00
Seth Hillbrand fc86998bf6 Ensure duplicate pin names get unique nets
Same pin name != same net name unless the pins are explicitly connected

Also add pin number to all unconnected pads ensuring they have unique
nets

Fixes https://gitlab.com/kicad/code/kicad/issues/13236
2023-01-04 11:32:15 -08:00
Jeff Young 9b9795a87d Reduce reliance on exception processing -- it's waay too bugy at present.
This moves some stuff to REPORTER APIs.  Moving more stuff would be good,
but it probably too high-risk at present.  We'll wait for 8.0 for that....

Fixes https://gitlab.com/kicad/code/kicad/issues/13359
2023-01-03 17:20:23 +00:00
Tomasz Wlostowski 7d40bbdf38 router: mark the head trace (as opposed to the 'fixed tail') with fully saturated color
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11386
2022-12-29 17:54:59 +01:00
Jeff Young 6940333f40 Update test cases for unknown-variable = error. 2022-12-27 20:14:13 +00:00
jean-pierre charras 438c4b58a3 Try to fix a QA issue probably due to the order some Ctors are called.
This is not the first time an issue is created by the order of ctors.
2022-12-27 19:56:04 +01:00
Wayne Stambaugh 78e2f0fd4d Sheet instance handling improvements. 2022-12-26 08:30:03 -05:00
Jon Evans b85fab9ab6 Support DXF ellipses and elliptical arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12563
2022-12-24 22:46:07 -05:00
Jeff Young 7abfa46531 Inferred sim value improvements, and a unit test for them. 2022-12-21 17:03:49 +00:00
Jeff Young a3a2e2e5b1 Update demos and legacy qa files SpiceMapping -> Spice_Node_Sequence.
Also removes migration in the code as it will no longer be needed.
2022-12-19 12:04:53 +00:00
Jeff Young 50ccc4e6da Fix issue converting legacy SPICE models.
1) if a legacy model references a library then we need to see if said
   libraray exists and read model from it if so
2) legacy node ordering is by index, not pin name
3) we can't auto-generate a pin map when we don't know the pin names,
   so don't try
2022-12-14 13:36:28 +00:00
Seth Hillbrand ba11de6e66 Update QA test schematics with valid and invalid variants 2022-12-09 02:14:05 +00:00
Barabas Raffai 63da407345 Add tests for no connect flag 2022-12-09 02:14:05 +00:00
Jeff Young cfbf14ebfd Attempt to fix build issue with NGSPICE off. 2022-12-08 23:57:42 +00:00
Jeff Young ce8fa2ad00 Move previous fix to subclass (which overrides the base class). 2022-12-07 17:13:19 +00:00
Jeff Young 5aa204e194 Another attempted sim testcases fix. 2022-12-07 15:07:25 +00:00
Jeff Young b9287968d6 Update symbol default prefixes after updating instance data.
Also moves the sim model fixups after the instance data updating as
it uses the prefixes.
2022-12-07 01:34:56 +00:00
Jeff Young 69448afb47 Don't run simulation twice when the sim command is overridden.
Fixes https://gitlab.com/kicad/code/kicad/issues/12731
2022-12-07 01:34:56 +00:00
Jeff Young 38906397d2 Move V6->V7 sim model migration from sheets to screens.
Also moves passive RLC inference out from migration to just-in-time
creation for the simulator or netlisting.

Also fixes a version guard mismatch because the spice migration was
done inside UpdateSymbolInstances (which has its own version guard).

Also changed UpdateSymbolInstances to UpdateSymbolInstanceData so
someone else in the future doesn't think it's a general-purpose symbol
instance updater.
2022-12-06 16:01:18 +00:00
Jeff Young 8260f0ee13 Add support for unitless values to PCB_EXPR_EVALUATOR.
Fixes https://gitlab.com/kicad/code/kicad/issues/13016
2022-11-29 14:24:20 +00:00
Mikolaj Wielgus 9055043409 Sim QA: Test for duplicates and wrongly deduplicated parameters
(adapt tests to the names of the newly deduplicated parameters)
2022-11-29 15:04:38 +01:00
Mikolaj Wielgus b025b103de Sim Model Editor: Make the VBIC model the first BJT model to select 2022-11-29 10:13:20 +01:00
Mikolaj Wielgus 484620eeb5 Sim QA: Add test for VDMOS 2022-11-29 09:48:01 +01:00
Mikolaj Wielgus 5fb191e4d6 Sim QA: Test all BJT parameters in each model 2022-11-28 09:49:48 +01:00
Mikolaj Wielgus 26644952a4 Sim QA: Test all diode parameters 2022-11-28 08:01:50 +01:00
Mikolaj Wielgus d836fbaaaa Sim: Add VBIC model support
Update generate_sim_model_ngspice_data.bash a little, but it's still
outdated.
2022-11-28 04:45:36 +01:00
Mikolaj Wielgus f2fb734e06 Sim QA: Add test for Numparam expressions inside .subckt 2022-11-27 06:32:17 +01:00
Mikolaj Wielgus 08d37d2795 Sim QA: Add Spice .subckt parsing tests 2022-11-26 10:24:11 +01:00
Mikolaj Wielgus 9766351ee6 Sim: Update QA to tests to match the new model upgrade scheme 2022-11-25 05:38:21 +01:00
Jeff Young 0b0c35c4dc Adjust test result. 2022-11-23 21:37:50 +00:00
Wayne Stambaugh cd92088b7a Fix disabled schematic page numbering unit tests. 2022-11-23 08:05:35 -05:00
Wayne Stambaugh d37015bada Temporarily disable unit tests so builds pass. 2022-11-22 19:08:08 -05:00
Mikolaj Wielgus 833146cf50 Sim QA: Fix QA errors
Let's not allow units in fields for now. (is 1m one meter or one milli?)
2022-11-22 21:18:01 +01:00
Jeff Young 729e64f33a Add call modification missed from previous commit. 2022-11-22 17:25:09 +00:00
Mikolaj Wielgus e9fe59a28c Sim: Rename the missed Sim_* fields to Sim.* 2022-11-21 03:33:11 +01:00
Mikolaj Wielgus 6969362813 Sim Model Editor: Don't provide library-only models as builtins 2022-11-20 22:07:39 +01:00
Fabien Corona 8498630876 Ibis: correctly load QA files up to v2.1 2022-11-20 19:10:46 +00:00
Mikolaj Wielgus 059ca8fc48 Sim: Rename Sim_* fields to Sim.* 2022-11-20 03:37:54 +01:00
Jeff Young e09e521162 Remove GUI calls from netlisting. 2022-11-18 15:29:16 +00:00
Tomasz Wlostowski cab5f65685 qa/pns: added test case for via drag walkaround 2022-11-18 15:14:34 +01:00
Tomasz Wlostowski bf4671aa16 qa: PNS debug tool should draw COMPOUND shapes too... 2022-11-18 15:14:34 +01:00
Mikolaj Wielgus e7c43ca20a Sim: Remove inference from Reference and Value 2022-11-18 08:39:15 +01:00
Jeff Young a61ac363c2 Excise the remaining occurrences of "Alias" for derived symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/12895
2022-11-16 18:37:40 +00:00
Tomasz Wlostowski 33594e92fa router: qa test case for backspace (unfix) regression 2022-11-15 23:05:53 +01:00
Tomasz Wlostowski 26a38797c7 router: log and replay the 'unfix' events too 2022-11-15 23:05:53 +01:00
Marek Roszko 3dd2ae762d Refactor step export to use our normal board processing routines 2022-11-12 21:27:10 -05:00
Jeff Young 9d525e82f5 Fix qa tests so they don't assert on cleanup. 2022-11-11 20:31:39 +00:00
Jon Evans c07477b94c Move to explicit symbol properties mapping
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12845
2022-11-08 22:19:08 -05:00
jean-pierre charras 97a002e06c fix previous commit for QA stuff (missing changes) 2022-11-08 12:33:24 +01:00
Jon Evans 68de92313e Properties: move to custom editor for distances; refactoring
Also fix display of angle values since EDA_ANGLE was introduced

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12290
2022-11-06 11:40:45 -05:00
Bevan Weiss 4f634d7df7 Updated accelerating zoom controller to use default (non-accelerated)
zoom if changing direction.

Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
2022-11-04 16:28:32 +00:00
Seth Hillbrand 07ef5d3343 Clarify QA message 2022-11-01 13:08:09 -07:00
Tomasz Wlostowski ab350cbfaa qa: some trivial test cases for the P&S regressions 2022-10-31 11:49:31 +01:00
Tomasz Wlostowski 50142ca73f qa: P&S regression tool ported to Boost::test 2022-10-31 11:49:31 +01:00
Tomasz Wlostowski 99bcdf7979 qa: introducing headless regression test suite for the P&S. Works by playing out pre-recorded events and comparing the resulting geometry against a human-approved reference.
Other changes:
- store all router settings (ROUTING_SETTINGS) in the debug dump in a separate JSON file
- store router mode (single/diff/tune) in the event log file
- factor out the regression test player and the graphical log/debug tool into separate main files
- bring CONSOLE_LOG and CONSOLE_MSG_REPORTER to the common test headers
2022-10-31 11:17:31 +01:00
Tomasz Wlostowski dfa6d22524 qa: moved CONSOLE_LOG and CONSOLE_MSG_REPORTER to common testing utils 2022-10-31 11:17:31 +01:00
Mikolaj Wielgus 5eca8dd8de Undo hardcoding swapping of diode pins
Revert commits d1e2acd3 70b4d1aa cff508fb
2022-10-30 11:01:59 +01:00
Mikolaj Wielgus cff508fb3b Sim: Reverse diode model pin order to match diode symbols 2022-10-28 14:01:09 +02:00
Mikolaj Wielgus f31feaac42 Sim: Commit forgotten files 2022-10-27 08:08:14 +02:00
Mikolaj Wielgus 6c752680d7 Sim QA: Add Potentiometers QA test 2022-10-27 06:42:43 +02:00
Wayne Stambaugh 6a0db3e7e2 Fix Coverity warnings. 2022-10-26 14:39:44 -04:00
Fabien Corona 20b63f305e Sim: Ibis improvements and fixes
Follow-up after the KIBIS and KIBIS GUI merge requests.

- Move KIBIS from Pcbnew to Eeschema space,
- Make KIBIS obtain the Ku/Kd coefficients via the `SPICE_SIMULATOR` class instead of calling the `ngspice` executable via `system()`,
- Allow to toggle between differential and single-ended model in the GUI,
- Various GUI fixes and improvements.
2022-10-25 09:45:40 +00:00
Jeff Young d16b23d16e Name shortening and line-break reduction. 2022-10-21 18:41:39 +01:00
Mikolaj Wielgus 00c04e74ed Sim QA: Test LTspice parameters and ako models of BJTs 2022-10-20 04:00:33 +02:00
Seth Hillbrand 27add591ec Add Clipper2
Currently this lives behind the advanced config flag `UseClipper2`.
Enabling this flag will route all Clipper-based calls through the
Clipper2 library instead of the older Clipper.  The changes should be
mostly transparent.

Of note, Clipper2 does not utilize the `STRICTLY_SIMPLE` flag because
clipper1 did not actually guarantee a strictly simple polygon.
Currently we ignore this flag but we may decide to run strictly-simple
operations through a second NULL union to simplify the results as much
as possible.

Additionally, the inflation options are slightly different.  We cannot
choose the fallback miter.  The fallback miter is always square.  This
only affects the CHAMFER_ACUTE_CORNERS option in inflate, which does not
appear to be used.

Lastly, we currently utilize the 64-bit integer coordinates for
calculations.  This appears to still be faster than 32-bit calculations
in Clipper1 on a modern x86 system.  This may not be the case for older
systems, particularly 32-bit systems.
2022-10-19 16:25:45 -07:00
Mikolaj Wielgus c4fc9c1b16 Sim QA: Add tests for AKO and LTspice diodes 2022-10-19 06:56:21 +02:00
Mikolaj Wielgus 42acabb5a9 Fix a mistake in uopamp.lib.spice 2022-10-18 22:38:49 +02:00
Mikolaj Wielgus ae671c07e1 Commit missing uopamp.lib.spice 2022-10-18 17:38:23 +02:00
Mikolaj Wielgus e5704d7058 Update uopamp.lib.spice to be the same in all QA tests 2022-10-18 06:15:54 +02:00
Mikolaj Wielgus c8e13813d9 Sim: Rename Sim_Disabled field to Sim_Enable 2022-10-16 00:49:44 +02:00
Mikolaj Wielgus c3d5b3b3e5 Sim: Only store device type in reference, not full model type
Instead of Reference="VSIN1", Value="dc=1 ampl=2 f=3", it's now
Reference="V1", Value="SIN dc=1 ampl=2 f=3".
2022-10-15 19:36:26 +02:00
Jeff Young 9424b166d0 Add regression test case for 12609. 2022-10-09 23:31:26 +01:00
Seth Hillbrand f369cc23a9 Handle arbitrary unit counts 2022-10-06 15:41:16 -07:00
Mikolaj Wielgus 6f2b2d7e19 Sim: Minor SIM_LIBRARY cleanup 2022-10-06 14:08:01 +02:00
Marek Roszko 40a279ae32 Hotglue the unit tests to work for now
The mocks never expected InitPgm to work and I accidentally fixed it for the kicad-cli
2022-10-05 17:12:32 -04:00
Mark Roszko fb8a4c10f7 Shove kicad2step into pcbnew itself with a new cli 2022-10-04 01:53:37 +00:00
Jeff Young d67437a2aa Move ratsnest exclusion processing to a post-pass.
Also fixes a few cases where we were unnecessarily rebuilding
connectivity more than once for an operation.
2022-09-29 17:08:49 +01:00
Fabien Corona 7e486327d9 Ibis differential and PRBS models 2022-09-29 08:35:01 +00:00
Jonathan Haas 4bbf942f15 Add test cases for box2 methods (Nearest/Farthest)Point and IntersectsCircle(Edge) 2022-09-27 22:40:55 +00:00
Fabien Corona 528fe4d371 Add Ibis to spice model editor
ADDED: IBIS models are now supported in Sim Model Editor
2022-09-27 20:47:00 +00:00
Alex dc07ab9df1 Replace PROF_COUNTER with PROF_TIMER in some conditional places. 2022-09-27 14:07:47 +00:00
Michal Sojka f7c82e2469 Fix parallel build failures
Parallel builds sometimes fail with the following error:

    eeschema/sch_plugins/kicad/sch_sexpr_parser.h:36:10: fatal error: schematic_lexer.h: No such file or directory

This can be reproduced by running the following in an empty build
subdirectory:

    cmake .. -G Ninja -DWHATEVER_IS_NEEDED...
    ninja qa/schematic_utils/libqa_schematic_utils.a

We fix this by adding explicit dependency between qa_schematic_utils
and eeschema_kiface_objects, which builds schematic_lexer.h.
2022-09-26 16:55:59 +00:00
Jeff Young 503385f52e Don't use FindNamedPad for net-tie logic. It only reutrns the *first*
pad of a given number.

Also improves other DRC logic to tighten up the net-tie rules now that
we know which pads are allowed to short with which other pads.

Also removes the "Overlapping pads" DRC violation now that we know
whether or not overlapping pads in a net-tie footprint constitute a
short.

Fixes https://gitlab.com/kicad/code/kicad/issues/12506
2022-09-25 17:38:31 +01:00
Ian McInerney fdb97a46c1 Don't copy items in for loops when not needed 2022-09-24 03:46:06 +01:00
Ian McInerney b8ef9ec178 Disable inconsistent missing override warnings in qa mocks
turtlemocks doesn't seem to provide a way to annotate that these methods
override a base class method, so it triggers a lot of warnings about
missing override when the classes are instantiated.
2022-09-24 02:11:41 +01:00
jean-pierre charras fc813b79aa Fix sim QA tests in countries using a comma as fp separator 2022-09-23 16:21:03 +02:00
Mikolaj Wielgus e4865ce543 Excise wxString from simulation 2022-09-22 07:41:52 +02:00
Seth Hillbrand 0150655ed3 Fix missing DRC check with via
When the via is first and not second in our ordering, the hole-copper
clearance was not checked as the track did not have a hole.

We also calculated the NPTH-via clearance incorrectly in the inspector
2022-09-20 13:43:01 -07:00
Seth Hillbrand e0f7c3b057 Properly handle non-connected labels in ERC
All labels need to be attached to a net that has at least 2 pins in
order for this to be a valid net.  To check for the existing pins, we
need to interate over all subgraphs in the net, counting pins
2022-09-19 15:18:32 -07:00
Jeff Young 64a6fc0fd4 Push UNITS_PROVIDER down into a low-level mixin.
This allows us to also construct cheap UNIT_PROVIDERs for specific
tasks when necessary.
2022-09-19 17:10:59 +01:00
Mike Williams a23b9810e1 Build: Fix Windows build (missing QA mock update) 2022-09-19 11:30:25 -04:00
jean-pierre charras 71bb7d63d9 Fix isses after base_units.cpp changes. 2022-09-17 10:56:56 +02:00
Marek Roszko 3d5913c825 Remove convert_to_biu.h, merge contents to base_units.h 2022-09-16 21:09:28 -04:00
Marek Roszko 66e8931405 Remove IU_PER_MM thats standalone 2022-09-16 21:09:27 -04:00
Marek Roszko 0f2411587e Remove Millimeter2iu 2022-09-16 21:09:27 -04:00
Marek Roszko 61e11d6896 Strip out Mils2Iu 2022-09-16 21:09:27 -04:00
Marek Roszko a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04:00
Mark Roszko b00178adb3 Nuke base_units from orbit 2022-09-16 04:38:10 +00:00
jean-pierre charras d199f92cd4 Fix QA tests in countries using a comma as fp separator (missing LOCALE_IO switch). 2022-09-15 10:37:01 +02:00
Seth Hillbrand 60374daa49 Fix ERC global label unit tests
Need to test all units in the subgraph as there are chances that the
subgraph might have more than one label, which needs to be consistently
handled
2022-09-12 13:16:45 -07:00
Seth Hillbrand f900acdac9 Fix override in mock base 2022-09-12 13:16:45 -07:00
Mikolaj Wielgus 0e0d1a34f5 Sim: Spice grammar fixes
- Fix parsing .model lines with model names containingnon-alphanumeric
  characters like - and _,
- Fix parsing libraries in which EOF is not preceded by a newline.

Fixes https://gitlab.com/kicad/code/kicad/issues/12394
2022-09-12 04:05:17 +02:00
Mikolaj Wielgus e56635a02b Sim: Add mutual inductor model 2022-09-11 19:23:01 +02:00
Jeff Young fdf71ba005 Fix linker error (doubly defined symbol). 2022-09-10 10:26:10 +01:00
Mikolaj Wielgus cb6b2da55f Sim QA: Display the original netlist even if circuit fails to parse 2022-09-10 02:45:48 +02:00
Seth Hillbrand f2e3329617 Add ERC QA tests 2022-09-09 17:21:57 -07:00
Jon Evans a5246a6df7 DbLib: Support showing field names 2022-09-04 13:01:32 -04:00
Jeff Young efae2bbb4c Better feedback for netclass assignment patterns. 2022-09-03 21:33:56 +01:00
Mikolaj Wielgus b225e53135 Sim QA: Test raw model with fewer pins than its symbol 2022-09-02 16:42:15 +02:00
Jeff Young 9188838e50 RIP EDA_RECT. 2022-08-31 23:57:24 +01:00
Jeff Young b4492e0bd2 More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00
Jeff Young 2dc6300501 Move EDA_ITEM bounding boxes to BOX2I. 2022-08-31 10:16:55 +01:00
Mikolaj Wielgus 121fad63ab Sim QA: Add Directives test
This test checks whether Spice directives placed in schematics as text
objects are properly included in the generated Spice netlist.
2022-08-31 09:41:35 +02:00
Mikolaj Wielgus bd6c153ad9 Sim: Implement "enum" model parameters for switches
Displayed in Sim Model Dialog parameter grid as a dropdown
(wxEnumProperty).
2022-08-30 09:45:49 +02:00
Seth Hillbrand eda27a09d6 Add broken SHAPE_POLY_SET test
Remove null segments only removes a single segment rather than all,
potentially null segments in a row
2022-08-29 17:08:01 -07:00
Mikolaj Wielgus 385e5deaaa Add Switches sim QA test
Tests voltage switches. Current switches will be tested as well once
they're fixed to work with .probe alli command in Ngspice.
2022-08-29 04:30:21 +02:00
Mikolaj Wielgus 3b3131ad74 Create class for voltage and current -controlled switches
Unfortunately, along the way it turned out that Ngspice's .probe alli
breaks current-controlled switches. So they won't work in that case for
now.
2022-08-29 03:49:41 +02:00
Marek Roszko dbd38882c0 Silence msvc warning about printf 2022-08-26 19:26:51 -04:00
Jon Evans ae6a2a6443 ADDED: Database libraries MVP
Allows placing parts from an external database that reference symbols from another loaded library.

Includes:
- nanodbc wrapper
- database schematic library plugin
- basic tests

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7436
2022-08-26 10:51:13 -04:00
Mikolaj Wielgus 103b8a0d2c Update the Opamp test to use a symbol with unordered pins 2022-08-26 04:36:48 +02:00
Seth Hillbrand f1261e71d4 Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
Mikolaj Wielgus c6defadb78 Add Fliege filter Spice netlist exporter test
Which we use to test multi-part symbols, as Fliege filter has two op
amps.
2022-08-25 08:47:31 +02:00
Mikolaj Wielgus 8a6a0ff7dc Allow inferred voltage/current sources to have a single float in Value
Update Opamp test to use this feature.
2022-08-24 06:19:38 +02:00
Marek Roszko fc99b3ba95 Don't link gdiplus everywhere anymore
Tested on msys2 which is the only place it would have been buggy
CMake seems to share the gdiplus linkage with the other dependencies automatically now
2022-08-23 23:51:35 -04:00
Maciej Suminski 7f00efe6cf Properties: Fixed conditional properties using enum values in the conditions
When wxAny holds an enum, it cannot be compared with an integer due to a
missing conversion function. In such case, conditional properties
compare a raw value rather than wxAny.
2022-08-22 21:32:32 -04:00
Maciej Suminski d5677a6dfe Properties: const getters 2022-08-22 21:32:32 -04:00
Maciej Suminski 3220a1dfbc Properties: Code formatting 2022-08-22 21:32:32 -04:00
Maciej Suminski f6f6ebd5f9 WIP: Properties GUI 2022-08-22 21:32:32 -04:00
Maciej Suminski 745c94b0a1 Properties (introspection)
Introduces classes:
- INSPECTED: base class for types taking advantage of
  generic properties system.
- PROPERTY*: meta-data storing information about properties
- PROPERTY_MANAGER: singleton class to get properties data
2022-08-22 21:32:00 -04:00
Roberto Fernandez Bautista 1fa1b44d02 Fix SHAPE_LINE_CHAIN::Simplify() when there are only 3 points in the chain
We weren't updating m_shapes properly.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11695
2022-08-19 20:49:49 +01:00
Seth Hillbrand b9461f2ba7 Re-enable tests for zones
Avoid invalid substantial checks triggered by signed floating point
zeros.  Adds a QA check to ensure zone-self checks are maintained
2022-08-18 17:06:29 -07:00
jean-pierre charras adac433103 Fix a Coverity warning 2022-08-17 09:29:04 +02:00
jean-pierre charras 994e702cce QA test for spice tests: generate a warning if ngspice cannot be run, but nor a QA fail.
if  ngspice cannot be run this is an install problem, not aQA issue.
2022-08-16 18:56:38 +02:00
Seth Hillbrand 30a72101f3 Explicitly set the connection width error 2022-08-16 05:31:46 -07:00
Jeff Young 1f347582f8 Introduce new marker type so we can track DRC errors on the drawing sheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/12221
2022-08-15 18:03:03 +01:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
jean-pierre charras 9b20e7debb QA eeschema tests: avoid crash if spice code models are not found. 2022-08-12 10:49:57 +02:00
Mikolaj Wielgus b6f6d1ef81 Sim QA: Add legacy_opamp test to check legacy subckt fields
In particular, Spice_Node_Sequence needed some additional coverage.
2022-08-11 21:23:05 +02:00
Mikolaj Wielgus c669d55eb8 Sim QA: Use uopamp_lvl2 instead of uopamp_lvl1 in Opamp test 2022-08-11 18:32:20 +02:00
Mikolaj Wielgus fbc42bf569 Sim QA: Display the original netlist on failure 2022-08-11 15:50:16 +02:00
Mikolaj Wielgus a1a99b1ec2 Sim QA: Check NGSPICE's LoadNetlist() and Run() status code 2022-08-10 17:54:28 +02:00
jean-pierre charras 962546436d QA test for LegacyLaserDriver: modify a parameter to pass QA on W10. 2022-08-10 14:04:28 +02:00
jean-pierre charras cc1e99ff5d QA test: annotate rlc.kicad_sch. only annotated schematic give reliable result. 2022-08-10 11:16:07 +02:00
Marek Roszko cf7576484f Move KIPLATFORM::APP::Init in qa_gerbview 2022-08-08 22:31:41 -04:00
Marek Roszko e1dcf4f3e2 Avoid use after free in qa_eeschema due to pointer reuse 2022-08-08 22:23:22 -04:00
Marek Roszko 09da6f32dc Copy ngspice codemodels for MSVC 2022-08-08 21:57:44 -04:00
Marek Roszko 8fd524aec1 Ensure all QA tests on windows use a manifest
We want UTF8 mode enabled via manifest for accurate behavior that matches the application
2022-08-08 21:26:02 -04:00
Mikolaj Wielgus 28179296db Sim QA: Output more debug info when a test fails
Also fix a bug due to unsigned int wraparound.
2022-08-09 03:09:16 +02:00
Marek Roszko 22649f79e8 Fix some ngspice handling during build for MSVC 2022-08-08 18:42:27 -04:00
Mikolaj Wielgus 128fedec1a Sim QA: Commit the missing rlc unit test project 2022-08-08 22:05:15 +02:00
Mikolaj Wielgus 5a51e38d34 Sim QA: Abort test (not only warn) if Ngspice ptr is null 2022-08-08 17:18:12 +02:00
Mikolaj Wielgus f6771ed789 Sim QA: Add rlc project to test RLC ideal model inference 2022-08-08 17:06:50 +02:00
jean-pierre charras f0c58ccdc1 test_drc_copper_conn: print more info if a test fails. 2022-08-08 16:19:26 +02:00
Mikolaj Wielgus c9f3507ff7 Sim: Don't require ngspice.h for SIM_MODEL_NGSPICE 2022-08-05 18:26:09 +02:00
Mikolaj Wielgus 9e7bc585ef Sim QA: Test only specific hardcoded points of the results
We don't want to assume Ngspice results to be very deterministic.
2022-08-04 21:07:43 +02:00
Mikolaj Wielgus 9a6d3be948 Remove the sim QA tests that are still failing
Displaying fewer digits is not working -- it seems that Ngspice is rounding the
numbers down (?).
2022-08-03 17:23:53 +02:00
Mikolaj Wielgus 800b512fe8 Further cut off digits down to one after period in sim QA
We just want to make sure our netlist exporter works. Being
deterministic is the simulator's job, not ours, though perhaps we should
investigate that too eventually.
2022-08-03 16:25:00 +02:00
Jeff Young ced55583a6 Back out unordered_map change for SCH_ITEM.
We're sensitive to the ordering in this one.

Also fixes a problem with the unit tests when KICAD_SPICE=OFF.
2022-08-03 14:29:34 +01:00
Mikolaj Wielgus 37209bb496 Try to fix Ngspice QA by resampling and cutting off value digits
`linearize` command resamples the data. Fourth and further digits from
decimal point are cut off by using `wrdata` command instead of `write`.
Oddly, "sources" unit test is not working (so it's still uncommented) --
some substantially different values are generated when generating the
reference with standalone Ngspice.
2022-08-03 14:28:01 +02:00
Jeff Young cc78997386 Add annular ring test and fix footprint/pad mismatch in other test. 2022-08-01 21:50:35 +01:00
Jeff Young 203d778c92 Fix test failure. 2022-08-01 21:42:02 +01:00
Jeff Young 90a98478b5 Attempt to fix compile. 2022-08-01 13:09:51 +01:00
Jeff Young 0304ad4494 Move connection width testing to rule system.
Also copies connection width progress reporting architecture over to
the sliver checker.
2022-08-01 13:09:51 +01:00
Mikolaj Wielgus 5e47ce8963 Fix build errors when KICAD_SPICE=OFF 2022-07-31 07:59:00 +02:00
Mikolaj Wielgus 0f915bf8a0 Comment out two more failing sim QA tests 2022-07-30 09:57:48 +02:00
Mikolaj Wielgus d7e5254c17 Comment out failing sim QA tests
The tests will probably have to test against manually specified bounds
and inexact points.

Added a previously mistakenly uncommitted cmos_not.csv.
2022-07-30 09:19:20 +02:00
Mikolaj Wielgus 7cf5138c63 Sim: Bugfixes, mostly for MS Windows compilation errors
Unfortunately, Windows headers define a lot of macros for common words,
so we had to rename some enums to not collide.

We also fix some of the many bugs related to the new simulation
architecture and the Spice Model Editor dialog.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 739b9255d9 Sim Model Editor improvements
- Tab-switching,
- Automatic expansion of categories on tab-switch,
- Various minor simulation improvements,
- Various new simulation-related bugfixes.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 6984f63af8 Sim: Transmission line models
Implement transmission line models and perform some adjustments to
the current models. Add some QA tests.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus fe38c622a9 Sim: Improvements to model serialization
Don't serialize parameters in certain models for default values. Infer
models from Value field for some kinds of models. Resolve synonyms when
loading models from Spice libraries.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 6450ec6b85 Sim: Spice netlist exporter rewrite
Rewrite the spice exporter to work with the new simulation model
architecture and data model, with many bugfixes related to the latter
two along the way.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus 978f01553b Sim Model Editor: Serialize models in fields
Implemented serialization and deserialization of models in symbol fields
through the SIM_VALUE class. We don't carry the Spice legacy of
case-insensitive suffixes, instead we conform to the SI standard (i.e. M
is Mega, not milli, P is peta, p is pico).

Parameter grid value validation is implemented by simply not allowing
any characters that will make the value invalid (instead of highlighting
the field in a red color). This will likely be changed at some point in
the future.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus c5a256291e Sim Model Editor: Display model parameters
This commit adds parameter display functionality, via a wxPropertyGrid
widget, to the Sim Model Editor. To faciliate that, a SIM_VALUE class is
created to serialize, deserialize, and validate numeric values in the
new parameter grid.

SPICE_MODEL is renamed to SIM_MODEL and split into several subclasses
that correspond to different model kinds.
2022-07-30 02:25:34 +00:00
Tomasz Wlostowski 739f74db5f qa: revert e4a36135 2022-07-21 19:17:16 +02:00
luz paz 79fa911e0e Fix various typos
Found via `codespell -q 3 -S *.po,./thirdparty,./Documentation/changelogs -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,ba,busses,dout,einstance,leaded,modul,ontext,ot,overide,serie,te,,tesselate,tesselator,tht`
2022-07-21 16:31:41 +00:00
Tomasz Wlostowski e4a36135c6 qa: added missing PCB_SELECTION_TOOL mock code 2022-07-21 13:06:36 +02:00
Marek Roszko 2ed95073a6 Use kiplatform::app::init to suppress gerbview qa noise on msvc 2022-07-18 21:35:05 -04:00
Marek Roszko 1278b2916c Add missing util mocks breaking compile 2022-07-17 11:37:51 -04:00
Jeff Young b727bfc16d Performance: avoid sqrt at all costs. 2022-07-16 18:42:32 +01:00
Alex ded4840130 Add test for rescale<int64_t> 2022-07-16 17:37:50 +00:00
Mike Williams 199d595ccd QA: Fix missing PCB_BITMAP case 2022-07-14 09:03:43 -04:00
Jeff Young d24e6c3408 Auto-annotate (and then don't re-annotate) power symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/11942
2022-07-11 21:46:01 -06:00
Jeff Young 57acce9e55 Share more code between selection tools. 2022-07-11 19:04:08 -06:00
Seth Hillbrand 3081023b5e ADDED: Minimum copper connection width DRC check
Checks all copper connections in each net/layer for minimum width
setting.

Fixes https://gitlab.com/kicad/code/kicad/issues/9870
2022-07-11 19:26:56 +00:00
Seth Hillbrand 261a557ea2 Update Altium SCH QA with rounding factors 2022-07-07 12:01:38 -07:00
Jeff Young 7633540492 Fix build issue. 2022-06-29 07:34:46 -06:00
Jeff Young ce4cedb5b4 Regression test case for 11814. 2022-06-15 11:45:29 +01:00
Seth Hillbrand 20f4e62176 Rename signalIntegrity to ibis
We do not use camelCase in KiCad
2022-06-10 13:35:48 -07:00
Fabien Corona 0d35d69f70 ADDED: Read IBIS files 2022-06-09 18:30:51 +00:00
Roberto Fernandez Bautista 80c8cfbbda Add PEGTL playground tool 2022-06-09 17:35:00 +01:00
Jon Evans af8deff063 Handle zero-length lines in log viewer 2022-06-07 19:49:38 -04:00
Tomasz Wlostowski 563b67f9a0 qa: some new stuff for the P&S debugger:
- search/filter in messages
- detection of non-45 degree lines
- indication of routing stage status (OK/FAIL)
- loading of project files (for custom DRC rules)
2022-06-03 23:28:41 +02:00
Tomasz Wlostowski e6ebc2b9b9 geometry: use dedicated 64-bit integer square root for distance computations
Guarantees 1 LSB error, while the C++ double type has 55 mantissa bits (meaning for sqrt(X) >~ 2^22.5) the error is not guaranteed.
2022-06-03 23:28:41 +02:00
Tomasz Wlostowski 5fd84dbacc qa/pns: draw single segments too in the log viewer frame 2022-06-03 23:28:41 +02:00
Jeff Young 09c9bc3037 Fix net ordering in gold file. 2022-05-27 21:28:17 +01:00
Jeff Young e9e1878d96 Attempt to fix eeschema tests.
(Slashes in netnames must be escaped or else we think they're path
separators.)
2022-05-27 17:53:11 +01:00
Roberto Fernandez Bautista 55f22c526a Fix annotation of incomplete multi-unit symbols and re-annotation of duplicates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11496
2022-05-26 09:23:36 +00:00
Jeff Young 4cd48cd5c9 Fix some test issues. 2022-04-23 22:15:39 +01:00
Seth Hillbrand aac6f576c2 Fix broken comparison in pin_numbers
Pin names like "+V" were incorrectly parsed as doubles leading to broken
comparisons.  These caused heap overflows when sorting pin tables

This corrects the comparison so that numeric sorts are only performed
when there is an actual number in the symbol segment.  Also adds unit
tests for common error cases
2022-04-19 14:46:05 -07:00
Roberto Fernandez Bautista 1db8229068 qa_eeschema refactor: Create generic SCHEMATIC_TEST_FIXTURE 2022-04-11 21:50:40 +01:00
Roberto Fernandez Bautista 4defc946ef Fix rounding errors in SHAPE_ARC::Collide + fix qa tests
Use CIRCLE::NearestPoint to ensure consistency
2022-04-11 13:46:36 +01:00
Jeff Young 2663ad5340 Implement Eagle text variables.
Also fixes two bugs:
1) subsequent text items that are marked >NAME or >VALUE will now get
imported as text items with ${REFERENCE} or ${VALUE} (instead of overwriting
the previous text item)

2) we no longer (accidentally) capitalize all text items.

Fixes https://gitlab.com/kicad/code/kicad/issues/11321
2022-04-10 17:29:47 +01:00