51 for( MODEL_TYPE type : MODEL_TYPE_ITERATOR() )
55 const std::vector<SIM_MODEL::PARAM::INFO> modelParams = ModelInfo( type ).modelParams;
56 const std::vector<SIM_MODEL::PARAM::INFO> instanceParams = ModelInfo( type ).instanceParams;
63 BOOST_CHECK( std::none_of( modelParams.begin(), modelParams.end(),
64 [&modelParam](
const auto& aOtherModelParam )
66 return modelParam.id != aOtherModelParam.id
67 && modelParam.name == aOtherModelParam.name;
72 BOOST_CHECK( std::none_of( instanceParams.begin(), instanceParams.end(),
73 [&modelParam](
const auto& aInstanceParam )
75 return modelParam.name == aInstanceParam.name;
78 if( boost::ends_with( modelParam.name,
"_" ) )
84 BOOST_CHECK( std::any_of( instanceParams.begin(), instanceParams.end(),
85 [&modelParam](
const auto& aInstanceParam )
87 return modelParam.name.substr( 0, modelParam.name.length() - 1 )
88 == aInstanceParam.name;
99 BOOST_CHECK( std::none_of( instanceParams.begin(), instanceParams.end(),
100 [&instanceParam](
const auto& aOtherInstanceParam )
102 return instanceParam.id != aOtherInstanceParam.id
103 && instanceParam.dir != SIM_MODEL::PARAM::DIR_OUT
104 && aOtherInstanceParam.dir != SIM_MODEL::PARAM::DIR_OUT
105 && instanceParam.name == aOtherInstanceParam.name;
152 const std::vector<SIM_MODEL::PARAM::INFO>& mesParams = ModelInfo( MODEL_TYPE::MES ).instanceParams;
154 auto mesM = std::find_if( mesParams.begin(), mesParams.end(),
157 return aParam.name ==
"m";
189 for( MODEL_TYPE type : MODEL_TYPE_ITERATOR() )
191 const std::vector<SIM_MODEL::PARAM::INFO> modelParams = ModelInfo( type ).modelParams;
192 const std::vector<SIM_MODEL::PARAM::INFO> instanceParams = ModelInfo( type ).instanceParams;
196 case MODEL_TYPE::NONE:
197 case MODEL_TYPE::_ENUM_END:
245 case MODEL_TYPE::DIODE:
250 case MODEL_TYPE::BJT:
255 case MODEL_TYPE::VBIC:
260 case MODEL_TYPE::HICUM2:
265 case MODEL_TYPE::JFET:
270 case MODEL_TYPE::JFET2:
275 case MODEL_TYPE::MES:
280 case MODEL_TYPE::MESA:
285 case MODEL_TYPE::HFET1:
290 case MODEL_TYPE::HFET2:
295 case MODEL_TYPE::VDMOS:
300 case MODEL_TYPE::MOS1:
305 case MODEL_TYPE::MOS2:
310 case MODEL_TYPE::MOS3:
315 case MODEL_TYPE::BSIM1:
320 case MODEL_TYPE::BSIM2:
325 case MODEL_TYPE::MOS6:
330 case MODEL_TYPE::BSIM3:
335 case MODEL_TYPE::MOS9:
340 case MODEL_TYPE::B4SOI:
345 case MODEL_TYPE::BSIM4:
350 case MODEL_TYPE::B3SOIFD:
355 case MODEL_TYPE::B3SOIDD:
360 case MODEL_TYPE::B3SOIPD:
365 case MODEL_TYPE::HISIM2:
370 case MODEL_TYPE::HISIMHV1:
375 case MODEL_TYPE::HISIMHV2:
381 BOOST_FAIL( wxString::Format(
382 "Unhandled type: %d "
383 "(if you created a new type you need to handle it in this switch "
BOOST_CHECK_EQUAL(result, "25.4")