26#include <boost/algorithm/string/predicate.hpp>
43 for( MODEL_TYPE type : MODEL_TYPE_ITERATOR() )
47 const std::vector<SIM_MODEL::PARAM::INFO> modelParams = ModelInfo( type ).modelParams;
48 const std::vector<SIM_MODEL::PARAM::INFO> instanceParams = ModelInfo( type ).instanceParams;
55 BOOST_CHECK( std::none_of( modelParams.begin(), modelParams.end(),
56 [&modelParam](
const auto& aOtherModelParam )
58 return modelParam.id != aOtherModelParam.id
59 && modelParam.name == aOtherModelParam.name;
64 BOOST_CHECK( std::none_of( instanceParams.begin(), instanceParams.end(),
65 [&modelParam](
const auto& aInstanceParam )
67 return modelParam.name == aInstanceParam.name;
70 if( boost::ends_with( modelParam.name,
"_" ) )
76 BOOST_CHECK( std::any_of( instanceParams.begin(), instanceParams.end(),
77 [&modelParam](
const auto& aInstanceParam )
79 return modelParam.name.substr( 0, modelParam.name.length() - 1 )
80 == aInstanceParam.name;
91 BOOST_CHECK( std::none_of( instanceParams.begin(), instanceParams.end(),
92 [&instanceParam](
const auto& aOtherInstanceParam )
94 return instanceParam.id != aOtherInstanceParam.id
95 && instanceParam.dir != SIM_MODEL::PARAM::DIR_OUT
96 && aOtherInstanceParam.dir != SIM_MODEL::PARAM::DIR_OUT
97 && instanceParam.name == aOtherInstanceParam.name;
111 for( MODEL_TYPE type : MODEL_TYPE_ITERATOR() )
113 const std::vector<SIM_MODEL::PARAM::INFO> modelParams = ModelInfo( type ).modelParams;
114 const std::vector<SIM_MODEL::PARAM::INFO> instanceParams = ModelInfo( type ).instanceParams;
118 case MODEL_TYPE::NONE:
119 case MODEL_TYPE::_ENUM_END:
167 case MODEL_TYPE::DIODE:
172 case MODEL_TYPE::BJT:
177 case MODEL_TYPE::VBIC:
182 case MODEL_TYPE::HICUM2:
187 case MODEL_TYPE::JFET:
192 case MODEL_TYPE::JFET2:
197 case MODEL_TYPE::MES:
202 case MODEL_TYPE::MESA:
207 case MODEL_TYPE::HFET1:
212 case MODEL_TYPE::HFET2:
217 case MODEL_TYPE::VDMOS:
222 case MODEL_TYPE::MOS1:
227 case MODEL_TYPE::MOS2:
232 case MODEL_TYPE::MOS3:
237 case MODEL_TYPE::BSIM1:
242 case MODEL_TYPE::BSIM2:
247 case MODEL_TYPE::MOS6:
252 case MODEL_TYPE::BSIM3:
257 case MODEL_TYPE::MOS9:
262 case MODEL_TYPE::B4SOI:
267 case MODEL_TYPE::BSIM4:
272 case MODEL_TYPE::B3SOIFD:
277 case MODEL_TYPE::B3SOIDD:
282 case MODEL_TYPE::B3SOIPD:
287 case MODEL_TYPE::HISIM2:
292 case MODEL_TYPE::HISIMHV1:
297 case MODEL_TYPE::HISIMHV2:
303 BOOST_FAIL( wxString::Format(
304 "Unhandled type: %d "
305 "(if you created a new type you need to handle it in this switch "
TEST_SIM_MODEL_NGSPICE_FIXTURE()
@ NONE
No connection to this item.
BOOST_CHECK_EQUAL(ret, c.m_exp_result)
BOOST_AUTO_TEST_SUITE_END()
BOOST_TEST_CONTEXT("Test Clearance")
BOOST_AUTO_TEST_CASE(ParamDuplicates)