63 auto tracker = std::make_shared<REFDES_TRACKER>(
false );
66 tracker->Insert(
"U1" );
67 tracker->Insert(
"U3" );
68 tracker->Insert(
"R1" );
69 tracker->Insert(
"R2" );
70 tracker->Insert(
"R5" );
74 std::map<int, std::vector<SCH_REFERENCE>> emptyMap;
75 std::vector<int> emptyUnits;
77 tracker->SetReuseRefDes(
false );
79 int nextU = tracker->GetNextRefDesForUnits( uRef, emptyMap, emptyUnits, 1 );
83 int nextR = tracker->GetNextRefDesForUnits( rRef, emptyMap, emptyUnits, 1 );
86 SCH_REFERENCE icRef = createTestReference(
"IC",
"74HC00", 1 );
87 int nextIC = tracker->GetNextRefDesForUnits( icRef, emptyMap, emptyUnits, 1 );
91 int nextU_min5 = tracker->GetNextRefDesForUnits( uRef, emptyMap, emptyUnits, 5 );
95 BOOST_CHECK( tracker->Contains(
"U2" ) );
96 BOOST_CHECK( tracker->Contains(
"R3" ) );
97 BOOST_CHECK( tracker->Contains(
"IC1" ) );
98 BOOST_CHECK( tracker->Contains(
"U5" ) );
104 auto tracker = std::make_shared<REFDES_TRACKER>(
false );
107 tracker->Insert(
"U1" );
108 tracker->Insert(
"U3" );
112 std::map<int, std::vector<SCH_REFERENCE>> emptyMap;
113 std::vector<int> emptyUnits;
115 tracker->SetReuseRefDes(
false );
117 int next = tracker->GetNextRefDesForUnits( uRef, emptyMap, emptyUnits, 1 );
120 tracker->Insert(
"IC1" );
121 tracker->Insert(
"IC5" );
123 SCH_REFERENCE icRef = createTestReference(
"IC",
"74HC00", 1 );
124 next = tracker->GetNextRefDesForUnits( icRef, emptyMap, emptyUnits, 3 );
128 std::string serialized = tracker->Serialize();
130 auto tracker2 = std::make_shared<REFDES_TRACKER>(
false );
131 BOOST_CHECK( tracker2->Deserialize( serialized ) );
134 BOOST_CHECK( tracker2->Contains(
"U1" ) );
135 BOOST_CHECK( tracker2->Contains(
"U2" ) );
136 BOOST_CHECK( tracker2->Contains(
"U3" ) );
137 BOOST_CHECK( tracker2->Contains(
"IC1" ) );
138 BOOST_CHECK( tracker2->Contains(
"IC3" ) );
139 BOOST_CHECK( tracker2->Contains(
"IC5" ) );
142 tracker2->SetReuseRefDes(
false );
143 next = tracker2->GetNextRefDesForUnits( uRef, emptyMap, emptyUnits, 1 );
146 next = tracker2->GetNextRefDesForUnits( icRef, emptyMap, emptyUnits, 1 );
SCH_REFERENCE createTestReference(const wxString &aRef, const wxString &aValue, int aUnit, const wxString &aLibName=wxS("TestPart"))
SCH_REFERENCE holds a raw pointer to its symbol and CompareLibName dereferences it,...
BOOST_CHECK_EQUAL(result, "25.4")