From 9055043409caf8e0c9346560da4a4ea607a738ce Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Tue, 29 Nov 2022 15:04:38 +0100 Subject: [PATCH] Sim QA: Test for duplicates and wrongly deduplicated parameters (adapt tests to the names of the newly deduplicated parameters) --- .../eeschema/sim/test_library_spice.cpp | 78 +++---- .../eeschema/sim/test_sim_model_ngspice.cpp | 215 ++++++++++++------ .../eeschema/test_netlist_exporter_spice.cpp | 2 +- 3 files changed, 180 insertions(+), 115 deletions(-) diff --git a/qa/unittests/eeschema/sim/test_library_spice.cpp b/qa/unittests/eeschema/sim/test_library_spice.cpp index 77d036f056..5b9c967e61 100644 --- a/qa/unittests/eeschema/sim/test_library_spice.cpp +++ b/qa/unittests/eeschema/sim/test_library_spice.cpp @@ -489,7 +489,7 @@ BOOST_AUTO_TEST_CASE( Bjts ) "re", "rs", "rbp", - "is", + "is_", "nf", "nr", "fc", @@ -585,7 +585,7 @@ BOOST_AUTO_TEST_CASE( Bjts ) "tvbbe2", "tnbbe", "ebbe", - "dtemp", + "dtemp_", "vers", "vref", "vbe_max", @@ -607,7 +607,7 @@ BOOST_AUTO_TEST_CASE( Bjts ) "re", "rs", "rbp", - "is", + "is_", "nf", "nr", "fc", @@ -703,7 +703,7 @@ BOOST_AUTO_TEST_CASE( Bjts ) "tvbbe2", "tnbbe", "ebbe", - "dtemp", + "dtemp_", "vers", "vref", "vbe_max", @@ -715,7 +715,7 @@ BOOST_AUTO_TEST_CASE( Bjts ) case 2: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_GUMMELPOON, { - "is", + "is_", "nf", "ise", "ne", @@ -759,7 +759,7 @@ BOOST_AUTO_TEST_CASE( Bjts ) case 3: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PNP_GUMMELPOON, { - "is", + "is_", "nf", "ise", "ne", @@ -1102,7 +1102,7 @@ BOOST_AUTO_TEST_CASE( Bjts ) case 6: case 7: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NPN_GUMMELPOON, - { "is", "nf", "ise", "ne", "bf", "ikf", "vaf", "nr", "isc", "nc" } ); + { "is_", "nf", "ise", "ne", "bf", "ikf", "vaf", "nr", "isc", "nc" } ); break; } } @@ -1129,13 +1129,13 @@ BOOST_AUTO_TEST_CASE( Fets ) { case 0: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NJFET_SHICHMANHODGES, - { "vt0", "beta", "lambda", "rd", "rs", "cgs", "cgd", "pb", "is", + { "vt0", "beta", "lambda", "rd", "rs", "cgs", "cgd", "pb", "is_", "fc" } ); break; case 1: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PJFET_SHICHMANHODGES, - { "vt0", "beta", "lambda", "rd", "rs", "cgs", "cgd", "pb", "is", + { "vt0", "beta", "lambda", "rd", "rs", "cgs", "cgd", "pb", "is_", "fc" } ); break; @@ -1153,13 +1153,13 @@ BOOST_AUTO_TEST_CASE( Fets ) case 4: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NMES_STATZ, - { "vt0", "alpha", "beta", "lambda", "b", "rd", "rs", "cgs", "cgd", + { "vt0", "alpha", "beta", "lambda", "b", "rd", "rs", "cgs", "cgd_", "pb" } ); break; case 5: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PMES_STATZ, - { "vt0", "alpha", "beta", "lambda", "b", "rd", "rs", "cgs", "cgd", + { "vt0", "alpha", "beta", "lambda", "b", "rd", "rs", "cgs", "cgd_", "pb" } ); break; @@ -1209,8 +1209,8 @@ BOOST_AUTO_TEST_CASE( Fets ) "phi", "lambda", "theta", - "rd", - "rs", + "rd_", + "rs_", "rg", "tnom", "kf", @@ -1248,7 +1248,7 @@ BOOST_AUTO_TEST_CASE( Fets ) "tt", "eg", "xti", - "is", + "is_", "vj", "cjo", "m", @@ -1256,7 +1256,7 @@ BOOST_AUTO_TEST_CASE( Fets ) "cgdmin", "cgdmax", "a", - "cgs", + "cgs_", "rthjc", "rthca", "cthj", @@ -1284,8 +1284,8 @@ BOOST_AUTO_TEST_CASE( Fets ) "phi", "lambda", "theta", - "rd", - "rs", + "rd_", + "rs_", "rg", "tnom", "kf", @@ -1323,7 +1323,7 @@ BOOST_AUTO_TEST_CASE( Fets ) "tt", "eg", "xti", - "is", + "is_", "vj", "cjo", "m", @@ -1331,7 +1331,7 @@ BOOST_AUTO_TEST_CASE( Fets ) "cgdmin", "cgdmax", "a", - "cgs", + "cgs_", "rthjc", "rthca", "cthj", @@ -1351,38 +1351,38 @@ BOOST_AUTO_TEST_CASE( Fets ) case 14: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NMOS_MOS1, - { "vto", "kp", "gamma", "phi", "lambda", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "kp", "gamma", "phi", "lambda", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 15: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PMOS_MOS1, - { "vto", "kp", "gamma", "phi", "lambda", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "kp", "gamma", "phi", "lambda", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 16: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NMOS_MOS2, - { "vto", "kp", "gamma", "phi", "lambda", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "kp", "gamma", "phi", "lambda", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 17: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PMOS_MOS2, - { "vto", "kp", "gamma", "phi", "lambda", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "kp", "gamma", "phi", "lambda", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 18: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NMOS_MOS3, - { "vto", "theta", "gamma", "phi", "eta", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "theta", "gamma", "phi", "eta", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 19: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PMOS_MOS3, - { "vto", "theta", "gamma", "phi", "eta", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "theta", "gamma", "phi", "eta", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 20: @@ -1411,14 +1411,14 @@ BOOST_AUTO_TEST_CASE( Fets ) case 24: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NMOS_MOS6, - { "vto", "nvth", "gamma", "phi", "lambda", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "nvth", "gamma", "phi", "lambda", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 25: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PMOS_MOS6, - { "vto", "nvth", "gamma", "phi", "lambda", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "nvth", "gamma", "phi", "lambda", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 26: @@ -1435,14 +1435,14 @@ BOOST_AUTO_TEST_CASE( Fets ) case 28: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::NMOS_MOS9, - { "vto", "theta", "gamma", "phi", "eta", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "theta", "gamma", "phi", "eta", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 29: TestTransistor( model, modelName, i, SIM_MODEL::TYPE::PMOS_MOS9, - { "vto", "theta", "gamma", "phi", "eta", "rd", "rs", "cbd", "cbs", - "is" } ); + { "vto", "theta", "gamma", "phi", "eta", "rd_", "rs_", "cbd_", "cbs_", + "is_" } ); break; case 30: diff --git a/qa/unittests/eeschema/sim/test_sim_model_ngspice.cpp b/qa/unittests/eeschema/sim/test_sim_model_ngspice.cpp index f28aca7c2b..1849cebb5c 100644 --- a/qa/unittests/eeschema/sim/test_sim_model_ngspice.cpp +++ b/qa/unittests/eeschema/sim/test_sim_model_ngspice.cpp @@ -23,6 +23,7 @@ #include #include +#include class TEST_SIM_MODEL_NGSPICE_FIXTURE : public SIM_MODEL_NGSPICE { @@ -34,15 +35,79 @@ public: BOOST_FIXTURE_TEST_SUITE( SimModelNgspice, TEST_SIM_MODEL_NGSPICE_FIXTURE ) -BOOST_AUTO_TEST_CASE( Models ) +BOOST_AUTO_TEST_CASE( ParamDuplicates ) +{ + for( MODEL_TYPE type : MODEL_TYPE_ITERATOR() ) + { + BOOST_TEST_CONTEXT( "Model name: " << ModelInfo( type ).name ) + { + const std::vector modelParams = ModelInfo( type ).modelParams; + const std::vector instanceParams = ModelInfo( type ).instanceParams; + + for( const SIM_MODEL::PARAM::INFO& modelParam : modelParams ) + { + BOOST_TEST_CONTEXT( "Model param name: " << modelParam.name ) + { + // Ensure there's no model parameters that have the same name. + BOOST_CHECK( std::none_of( modelParams.begin(), modelParams.end(), + [modelParam]( const auto& aOtherModelParam ) + { + return modelParam.id != aOtherModelParam.id + && modelParam.name == aOtherModelParam.name; + } ) ); + + // Ensure there's no model parameters that have the same name as an instance parameter. + BOOST_CHECK( std::none_of( instanceParams.begin(), instanceParams.end(), + [modelParam]( const auto& aInstanceParam ) + { + return modelParam.name == aInstanceParam.name; + } ) ); + + if( boost::ends_with( modelParam.name, "_" ) ) + { + // Ensure that for each model parameter ending with a "_" there exists an + // instance parameter with the same name but without this final character. + // We append an "_" to model parameters to disambiguate from these + // corresponding instance parameters. + BOOST_CHECK( std::any_of( instanceParams.begin(), instanceParams.end(), + [modelParam]( const auto& aInstanceParam ) + { + return modelParam.name.substr( 0, modelParam.name.length() - 1 ) + == aInstanceParam.name; + } ) ); + } + } + } + + // Ensure there's no instance parameters that have the same name. + for( const SIM_MODEL::PARAM::INFO& instanceParam : instanceParams ) + { + BOOST_TEST_CONTEXT( "Instance param name: " << instanceParam.name ) + { + BOOST_CHECK( std::none_of( instanceParams.begin(), instanceParams.end(), + [instanceParam]( const auto& aOtherInstanceParam ) + { + return instanceParam.id != aOtherInstanceParam.id + && instanceParam.dir != SIM_MODEL::PARAM::DIR_OUT + && aOtherInstanceParam.dir != SIM_MODEL::PARAM::DIR_OUT + && instanceParam.name == aOtherInstanceParam.name; + } ) ); + } + } + } + } +} + + +BOOST_AUTO_TEST_CASE( ParamCount ) { // Count the total number of model and instance parameters for each model so that there will be // an error if someone accidentally removes a parameter. for( MODEL_TYPE type : MODEL_TYPE_ITERATOR() ) { - unsigned modelParamCount = ModelInfo( type ).modelParams.size(); - unsigned instanceParamCount = ModelInfo( type ).instanceParams.size(); + const std::vector modelParams = ModelInfo( type ).modelParams; + const std::vector instanceParams = ModelInfo( type ).instanceParams; switch( type ) { @@ -51,183 +116,183 @@ BOOST_AUTO_TEST_CASE( Models ) break; /*case MODEL_TYPE::RESISTOR: - BOOST_CHECK_EQUAL( modelParamCount, 22 ); - BOOST_CHECK_EQUAL( instanceParamCount, 25 ); + BOOST_CHECK_EQUAL( modelParams.size(), 22 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 25 ); break; case MODEL_TYPE::CAPACITOR: - BOOST_CHECK_EQUAL( modelParamCount, 19 ); - BOOST_CHECK_EQUAL( instanceParamCount, 22 ); + BOOST_CHECK_EQUAL( modelParams.size(), 19 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 22 ); break; case MODEL_TYPE::INDUCTOR: - BOOST_CHECK_EQUAL( modelParamCount, 9 ); - BOOST_CHECK_EQUAL( instanceParamCount, 20 ); + BOOST_CHECK_EQUAL( modelParams.size(), 9 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 20 ); break;*/ /*case MODEL_TYPE::LTRA: - BOOST_CHECK_EQUAL( modelParamCount, 18 ); - BOOST_CHECK_EQUAL( instanceParamCount, 9 ); + BOOST_CHECK_EQUAL( modelParams.size(), 18 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 9 ); break; case MODEL_TYPE::TRANLINE: - BOOST_CHECK_EQUAL( modelParamCount, 0 ); - BOOST_CHECK_EQUAL( instanceParamCount, 17 ); + BOOST_CHECK_EQUAL( modelParams.size(), 0 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 17 ); break; case MODEL_TYPE::URC: - BOOST_CHECK_EQUAL( modelParamCount, 7 ); - BOOST_CHECK_EQUAL( instanceParamCount, 5 ); + BOOST_CHECK_EQUAL( modelParams.size(), 7 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 5 ); break;*/ /*case MODEL_TYPE::TRANSLINE: - BOOST_CHECK_EQUAL( modelParamCount, 6 ); - BOOST_CHECK_EQUAL( instanceParamCount, 3 ); + BOOST_CHECK_EQUAL( modelParams.size(), 6 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 3 ); break;*/ /*case MODEL_TYPE::SWITCH: - BOOST_CHECK_EQUAL( modelParamCount, 7 ); - BOOST_CHECK_EQUAL( instanceParamCount, 8 ); + BOOST_CHECK_EQUAL( modelParams.size(), 7 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 8 ); break; case MODEL_TYPE::CSWITCH: - BOOST_CHECK_EQUAL( modelParamCount, 7 ); - BOOST_CHECK_EQUAL( instanceParamCount, 7 ); + BOOST_CHECK_EQUAL( modelParams.size(), 7 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 7 ); break;*/ case MODEL_TYPE::DIODE: - BOOST_CHECK_EQUAL( modelParamCount, 76 ); - BOOST_CHECK_EQUAL( instanceParamCount, 30 ); + BOOST_CHECK_EQUAL( modelParams.size(), 76 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 30 ); break; case MODEL_TYPE::BJT: - BOOST_CHECK_EQUAL( modelParamCount, 152 ); - BOOST_CHECK_EQUAL( instanceParamCount, 53 ); + BOOST_CHECK_EQUAL( modelParams.size(), 152 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 53 ); break; case MODEL_TYPE::VBIC: - BOOST_CHECK_EQUAL( modelParamCount, 117 ); - BOOST_CHECK_EQUAL( instanceParamCount, 45 ); + BOOST_CHECK_EQUAL( modelParams.size(), 117 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 45 ); break; case MODEL_TYPE::HICUM2: - BOOST_CHECK_EQUAL( modelParamCount, 149 ); - BOOST_CHECK_EQUAL( instanceParamCount, 61 ); + BOOST_CHECK_EQUAL( modelParams.size(), 149 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 61 ); break; case MODEL_TYPE::JFET: - BOOST_CHECK_EQUAL( modelParamCount, 28 ); - BOOST_CHECK_EQUAL( instanceParamCount, 28 ); + BOOST_CHECK_EQUAL( modelParams.size(), 28 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 28 ); break; case MODEL_TYPE::JFET2: - BOOST_CHECK_EQUAL( modelParamCount, 46 ); - BOOST_CHECK_EQUAL( instanceParamCount, 30 ); + BOOST_CHECK_EQUAL( modelParams.size(), 46 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 30 ); break; case MODEL_TYPE::MES: - BOOST_CHECK_EQUAL( modelParamCount, 22 ); - BOOST_CHECK_EQUAL( instanceParamCount, 25 ); + BOOST_CHECK_EQUAL( modelParams.size(), 22 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 25 ); break; case MODEL_TYPE::MESA: - BOOST_CHECK_EQUAL( modelParamCount, 71 ); - BOOST_CHECK_EQUAL( instanceParamCount, 30 ); + BOOST_CHECK_EQUAL( modelParams.size(), 71 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 30 ); break; case MODEL_TYPE::HFET1: - BOOST_CHECK_EQUAL( modelParamCount, 68 ); - BOOST_CHECK_EQUAL( instanceParamCount, 28 ); + BOOST_CHECK_EQUAL( modelParams.size(), 68 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 28 ); break; case MODEL_TYPE::HFET2: - BOOST_CHECK_EQUAL( modelParamCount, 40 ); - BOOST_CHECK_EQUAL( instanceParamCount, 28 ); + BOOST_CHECK_EQUAL( modelParams.size(), 40 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 28 ); break; case MODEL_TYPE::VDMOS: - BOOST_CHECK_EQUAL( modelParamCount, 69 ); - BOOST_CHECK_EQUAL( instanceParamCount, 36 ); + BOOST_CHECK_EQUAL( modelParams.size(), 69 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 36 ); break; case MODEL_TYPE::MOS1: - BOOST_CHECK_EQUAL( modelParamCount, 35 ); - BOOST_CHECK_EQUAL( instanceParamCount, 76 ); + BOOST_CHECK_EQUAL( modelParams.size(), 35 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 76 ); break; case MODEL_TYPE::MOS2: - BOOST_CHECK_EQUAL( modelParamCount, 42 ); - BOOST_CHECK_EQUAL( instanceParamCount, 76 ); + BOOST_CHECK_EQUAL( modelParams.size(), 42 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 76 ); break; case MODEL_TYPE::MOS3: - BOOST_CHECK_EQUAL( modelParamCount, 48 ); - BOOST_CHECK_EQUAL( instanceParamCount, 81 ); + BOOST_CHECK_EQUAL( modelParams.size(), 48 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 81 ); break; case MODEL_TYPE::BSIM1: - BOOST_CHECK_EQUAL( modelParamCount, 81 ); - BOOST_CHECK_EQUAL( instanceParamCount, 14 ); + BOOST_CHECK_EQUAL( modelParams.size(), 81 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 14 ); break; case MODEL_TYPE::BSIM2: - BOOST_CHECK_EQUAL( modelParamCount, 137 ); - BOOST_CHECK_EQUAL( instanceParamCount, 14 ); + BOOST_CHECK_EQUAL( modelParams.size(), 137 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 14 ); break; case MODEL_TYPE::MOS6: - BOOST_CHECK_EQUAL( modelParamCount, 42 ); - BOOST_CHECK_EQUAL( instanceParamCount, 78 ); + BOOST_CHECK_EQUAL( modelParams.size(), 42 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 78 ); break; case MODEL_TYPE::BSIM3: - BOOST_CHECK_EQUAL( modelParamCount, 429 ); - BOOST_CHECK_EQUAL( instanceParamCount, 46 ); + BOOST_CHECK_EQUAL( modelParams.size(), 429 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 46 ); break; case MODEL_TYPE::MOS9: - BOOST_CHECK_EQUAL( modelParamCount, 48 ); - BOOST_CHECK_EQUAL( instanceParamCount, 81 ); + BOOST_CHECK_EQUAL( modelParams.size(), 48 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 81 ); break; case MODEL_TYPE::B4SOI: - BOOST_CHECK_EQUAL( modelParamCount, 915 ); - BOOST_CHECK_EQUAL( instanceParamCount, 74 ); + BOOST_CHECK_EQUAL( modelParams.size(), 915 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 74 ); break; case MODEL_TYPE::BSIM4: - BOOST_CHECK_EQUAL( modelParamCount, 892 ); - BOOST_CHECK_EQUAL( instanceParamCount, 84 ); + BOOST_CHECK_EQUAL( modelParams.size(), 892 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 84 ); break; case MODEL_TYPE::B3SOIFD: - BOOST_CHECK_EQUAL( modelParamCount, 393 ); - BOOST_CHECK_EQUAL( instanceParamCount, 27 ); + BOOST_CHECK_EQUAL( modelParams.size(), 393 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 27 ); break; case MODEL_TYPE::B3SOIDD: - BOOST_CHECK_EQUAL( modelParamCount, 393 ); - BOOST_CHECK_EQUAL( instanceParamCount, 27 ); + BOOST_CHECK_EQUAL( modelParams.size(), 393 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 27 ); break; case MODEL_TYPE::B3SOIPD: - BOOST_CHECK_EQUAL( modelParamCount, 470 ); - BOOST_CHECK_EQUAL( instanceParamCount, 36 ); + BOOST_CHECK_EQUAL( modelParams.size(), 470 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 36 ); break; case MODEL_TYPE::HISIM2: - BOOST_CHECK_EQUAL( modelParamCount, 486 ); - BOOST_CHECK_EQUAL( instanceParamCount, 59 ); + BOOST_CHECK_EQUAL( modelParams.size(), 486 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 59 ); break; case MODEL_TYPE::HISIMHV1: - BOOST_CHECK_EQUAL( modelParamCount, 610 ); - BOOST_CHECK_EQUAL( instanceParamCount, 72 ); + BOOST_CHECK_EQUAL( modelParams.size(), 610 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 72 ); break; case MODEL_TYPE::HISIMHV2: - BOOST_CHECK_EQUAL( modelParamCount, 730 ); - BOOST_CHECK_EQUAL( instanceParamCount, 74 ); + BOOST_CHECK_EQUAL( modelParams.size(), 730 ); + BOOST_CHECK_EQUAL( instanceParams.size(), 74 ); break; default: diff --git a/qa/unittests/eeschema/test_netlist_exporter_spice.cpp b/qa/unittests/eeschema/test_netlist_exporter_spice.cpp index 5bac536132..ec5960ef9c 100644 --- a/qa/unittests/eeschema/test_netlist_exporter_spice.cpp +++ b/qa/unittests/eeschema/test_netlist_exporter_spice.cpp @@ -196,7 +196,7 @@ public: { // The default aMaxRelError is fairly large because we have some problems with determinism // in QA pipeline. We don't need to fix this for now because, if this has to be fixed in - // the first place, this would have to be done from Ngspice's side. + // the first place, this has to be done from Ngspice's side. BOOST_TEST_CONTEXT( "X vector name: " << aXVectorName << ", X value: " << aXValue ) {