80 wxFileName netFile = m_schematic->Project().GetProjectFullName();
81 netFile.SetName( netFile.GetName() + wxT(
"_xml_test" ) );
82 netFile.SetExt( wxT(
"xml" ) );
84 if( wxFileExists( netFile.GetFullPath() ) )
85 wxRemoveFile( netFile.GetFullPath() );
88 std::unique_ptr<NETLIST_EXPORTER_XML> exporter =
89 std::make_unique<NETLIST_EXPORTER_XML>( m_schematic.get() );
91 bool success = exporter->WriteNetlist( netFile.GetFullPath(), 0, reporter );
98 wxXmlNode* root = xdoc.GetRoot();
101 wxXmlNode* nets =
find_child( root, wxT(
"nets" ) );
105 std::set<wxString> setA;
106 std::set<wxString> setB;
111 wxString netName = net->GetAttribute( wxT(
"name" ), wxEmptyString );
112 if( netName != wxT(
"VCC" ) && netName != wxT(
"GND" ) )
115 std::set<wxString>* target = ( foundSets == 0 ? &setA : &setB );
119 if( node->GetAttribute( wxT(
"ref" ), wxEmptyString ) != wxT(
"R1" ) )
122 wxString
pin = node->GetAttribute( wxT(
"pin" ), wxEmptyString );
123 wxString pinfunction = node->GetAttribute( wxT(
"pinfunction" ), wxEmptyString );
124 wxString pintype = node->GetAttribute( wxT(
"pintype" ), wxEmptyString );
131 target->insert(
pin );
138 BOOST_REQUIRE_EQUAL( foundSets, 2 );
141 const std::set<wxString> expectedTop =
as_set( {
"1",
"2",
"3",
"4",
"5" } );
142 const std::set<wxString> expectedBot =
as_set( {
"6",
"7",
"9",
"10",
"11" } );
144 bool matchA = ( setA == expectedTop && setB == expectedBot );
145 bool matchB = ( setA == expectedBot && setB == expectedTop );
146 BOOST_CHECK( matchA || matchB );
149 wxRemoveFile( netFile.GetFullPath() );
BOOST_CHECK_EQUAL(result, "25.4")