20#include <boost/test/unit_test.hpp>
32 TEST_EDA_ITEM(
KICAD_T aType ) : EDA_ITEM( aType ) {}
34 wxString GetClass()
const override {
return wxT(
"TEST_EDA_ITEM"); }
37 EDA_ITEM*
Clone()
const override {
return new TEST_EDA_ITEM( Type() ); }
58 if( aTestItem->
Type() == type )
89 default: os <<
"UNKNOWN";
break;
109 TEST_EDA_ITEM item(
PCB_T );
111 collector.
Append( &item );
120 TEST_EDA_ITEM item1(
PCB_T );
124 collector.
Append( &item1 );
125 collector.
Append( &item2 );
126 collector.
Append( &item3 );
138 collector.
Append(
nullptr );
147 TEST_EDA_ITEM item1(
PCB_T );
150 collector.
Append( &item1 );
151 collector.
Append( &item2 );
162 TEST_EDA_ITEM item1(
PCB_T );
166 collector.
Append( &item1 );
167 collector.
Append( &item2 );
168 collector.
Append( &item3 );
180 TEST_EDA_ITEM item1(
PCB_T );
183 collector.
Append( &item1 );
184 collector.
Append( &item2 );
195 TEST_EDA_ITEM item1(
PCB_T );
198 collector.
Append( &item1 );
199 collector.
Append( &item2 );
210 TEST_EDA_ITEM item1(
PCB_T );
214 collector.
Append( &item1 );
215 collector.
Append( &item2 );
216 collector.
Append( &item3 );
218 collector.
Remove( &item2 );
228 TEST_EDA_ITEM item1(
PCB_T );
232 collector.
Append( &item1 );
233 collector.
Append( &item2 );
235 collector.
Remove( &item3 );
245 TEST_EDA_ITEM item1(
PCB_T );
247 collector.
Append( &item1 );
248 collector.
Append( &item1 );
249 collector.
Append( &item1 );
251 collector.
Remove( &item1 );
259 TEST_EDA_ITEM item1(
PCB_T );
263 collector.
Append( &item1 );
264 collector.
Append( &item2 );
265 collector.
Append( &item3 );
278 TEST_EDA_ITEM item1(
PCB_T );
282 collector.
Append( &item1 );
283 collector.
Append( &item2 );
284 collector.
Append( &item3 );
297 TEST_EDA_ITEM item1(
PCB_T );
301 collector.
Append( &item1 );
302 collector.
Append( &item2 );
313 TEST_EDA_ITEM item1(
PCB_T );
317 collector.
Append( &item1 );
318 collector.
Append( &item2 );
319 collector.
Append( &item3 );
339 TEST_EDA_ITEM item1(
PCB_T );
341 collector.
Append( &item1 );
354 TEST_EDA_ITEM item1(
PCB_T );
357 collector.
Append( &item1 );
358 collector.
Append( &item2 );
367 TEST_EDA_ITEM item1(
PCB_T );
369 collector.
Append( &item1 );
386 TEST_EDA_ITEM item1(
PCB_T );
389 collector.
Append( &item1 );
390 collector.
Append( &item2 );
392 BOOST_CHECK( collector.
HasItem( &item1 ) );
393 BOOST_CHECK( collector.
HasItem( &item2 ) );
399 TEST_EDA_ITEM item1(
PCB_T );
403 collector.
Append( &item1 );
404 collector.
Append( &item2 );
406 BOOST_CHECK( !collector.
HasItem( &item3 ) );
412 TEST_EDA_ITEM item1(
PCB_T );
414 collector.
Append( &item1 );
415 collector.
Append(
nullptr );
417 BOOST_CHECK( collector.
HasItem(
nullptr ) );
423 TEST_EDA_ITEM item1(
PCB_T );
425 BOOST_CHECK( !collector.
HasItem( &item1 ) );
431 TEST_EDA_ITEM item1(
PCB_T );
432 TEST_EDA_ITEM item2(
PCB_T );
435 collector.
Append( &item1 );
436 collector.
Append( &item2 );
437 collector.
Append( &item3 );
476 TEST_EDA_ITEM item1(
PCB_T );
480 collector.
Append( &item1 );
481 collector.
Append( &item2 );
482 collector.
Append( &item3 );
484 std::vector<EDA_ITEM*> items;
485 for(
auto iter = collector.
begin(); iter != collector.
end(); ++iter )
487 items.push_back( *iter );
499 TEST_EDA_ITEM item1(
PCB_T );
502 collector.
Append( &item1 );
503 collector.
Append( &item2 );
505 std::vector<EDA_ITEM*> items;
508 items.push_back( item );
519 TEST_EDA_ITEM item1(
PCB_T );
521 collector.
Append( &item1 );
523 const COLLECTOR& constCollector = collector;
524 std::vector<const EDA_ITEM*> items;
526 for(
auto iter = constCollector.
begin(); iter != constCollector.
end(); ++iter )
528 items.push_back( *iter );
538 TEST_EDA_ITEM item1(
PCB_T );
550 TEST_EDA_ITEM item1(
PCB_T );
557 collector.
Inspect( &item1,
nullptr );
558 collector.
Inspect( &item2,
nullptr );
559 collector.
Inspect( &item3,
nullptr );
562 BOOST_CHECK( collector.
HasItem( &item1 ) );
563 BOOST_CHECK( collector.
HasItem( &item2 ) );
564 BOOST_CHECK( !collector.
HasItem( &item3 ) );
570 TEST_EDA_ITEM item1(
PCB_T );
576 collector.
Append( &item1 );
577 collector.
Append( &item2 );
578 collector.
Append( &item3 );
579 collector.
Append( &item4 );
589 collector.
Remove( &item1 );
598 BOOST_CHECK( !collector.
HasItem( &item1 ) );
599 BOOST_CHECK( collector.
HasItem( &item2 ) );
600 BOOST_CHECK( collector.
HasItem( &item3 ) );
601 BOOST_CHECK( collector.
HasItem( &item4 ) );
An abstract class that will find and hold all the objects according to an inspection done by the Insp...
void Transfer(int aIndex)
Move the item at aIndex (first position is 0) to the backup list.
void Empty()
Clear the list.
int GetCount() const
Return the number of objects in the list.
bool HasItem(const EDA_ITEM *aItem) const
Tests if aItem has already been collected.
void SetScanTypes(const std::vector< KICAD_T > &aTypes)
Record the list of KICAD_T types to consider for collection by the Inspect() function.
void SetRefPos(const VECTOR2I &aRefPos)
int CountType(KICAD_T aType)
Count the number of items matching aType.
std::vector< KICAD_T > m_scanTypes
void Remove(int aIndex)
Remove the item at aIndex (first position is 0).
bool HasAdditionalItems()
Test if the collector has heuristic backup items.
void Combine()
Re-combine the backup list into the main list of the collector.
void Append(EDA_ITEM *item)
Add an item to the end of the list.
A base class for most all the KiCad significant classes used in schematics and boards.
KICAD_T Type() const
Returns the type of object.
INSPECT_RESULT Inspect(EDA_ITEM *aTestItem, void *aTestData) override
void SetShouldCollect(bool aShouldCollect)
int GetInspectCalls() const
std::unique_ptr< typename std::remove_const< T >::type > Clone(const T &aItem)
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_AUTO_TEST_SUITE(CadstarPartParser)
BOOST_AUTO_TEST_CASE(Constructor_DefaultValues)
std::ostream & operator<<(std::ostream &os, const INSPECT_RESULT &result)
BOOST_AUTO_TEST_SUITE_END()
wxString result
Test unit parsing edge cases and error handling.
BOOST_CHECK_EQUAL(result, "25.4")
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
@ PCB_VIA_T
class PCB_VIA, a via (like a track segment on a copper layer)
@ PCB_PAD_T
class PAD, a pad in a footprint
@ PCB_TRACE_T
class PCB_TRACK, a track segment (segment on a copper layer)
VECTOR2< int32_t > VECTOR2I