44 std::vector<uint8_t> bytes = fixtureBytes( wxS(
"minimal_v13" ) );
45 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinaryFamily( bytes ) );
46 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinarySch( bytes ) );
47 BOOST_CHECK( PADS_SCH_BINARY_READER::IsSupportedVersion( 0x000C ) );
48 BOOST_CHECK( PADS_SCH_BINARY_READER::IsSupportedVersion( 0x000D ) );
52 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinaryFamily( bytes ) );
53 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinarySch( bytes ) );
54 BOOST_CHECK( !PADS_SCH_BINARY_READER::IsSupportedVersion( 0xFE00 ) );
57 BOOST_CHECK( !PADS_SCH_BINARY_READER::IsBinaryFamily( bytes ) );
58 BOOST_CHECK( !PADS_SCH_BINARY_READER::IsBinarySch( bytes ) );
59 BOOST_CHECK( !PADS_SCH_BINARY_READER::IsBinaryFamily( { 0x00 } ) );
60 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinaryFamily( { 0x00, 0xFE } ) );
61 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinaryFamily( { 0x00, 0xFE, 0x0D } ) );
62 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinaryFamily( { 0x00, 0xFE, 0x0D, 0x00 } ) );
63 BOOST_CHECK( !PADS_SCH_BINARY_READER::IsBinaryFamily( std::vector<uint8_t>( 31, 0x00 ) ) );
65 std::vector<uint8_t> truncatedHeader( 31, 0x00 );
66 truncatedHeader[1] = 0xFE;
67 BOOST_CHECK( PADS_SCH_BINARY_READER::IsBinaryFamily( truncatedHeader ) );
73 PADS_SCH_BINARY_READER reader;
74 std::vector<uint8_t> bytes = fixtureBytes( wxS(
"connectivity_topology" ) );
75 BOOST_REQUIRE( reader.Parse( bytes, fixture( wxS(
"connectivity_topology" ) ) ) );
77 BOOST_CHECK( !reader.GetModel().sheets.empty() );
78 BOOST_CHECK( !reader.GetModel().nets.empty() );
79 BOOST_CHECK( !reader.GetModel().buses.empty() );
80 BOOST_CHECK( !reader.GetModel().labels.empty() );
86 PADS_SCH_BINARY_READER reader;
87 BOOST_CHECK_THROW( reader.Parse( { 0x00, 0xFE }, wxS(
"truncated.sch" ) ),
IO_ERROR );
88 BOOST_CHECK_THROW( reader.GetModel(),
IO_ERROR );
90 std::vector<uint8_t> bytes = fixtureBytes( wxS(
"minimal_v13" ) );
97 reader.Parse( bytes, wxS(
"unsupported.sch" ) );
98 BOOST_FAIL(
"unsupported binary schematic was accepted" );
102 message = error.
What();
105 BOOST_CHECK( message.Contains( wxS(
"v0xFE00" ) ) );
106 BOOST_CHECK( message.Contains( wxS(
"unsupported PADS Logic binary version" ) ) );
107 BOOST_CHECK_THROW( reader.GetModel(),
IO_ERROR );
113 PADS_SCH_BINARY_READER reader;
114 BOOST_REQUIRE( reader.Parse( fixtureBytes( wxS(
"minimal_v13" ) ), fixture( wxS(
"minimal_v13" ) ) ) );
115 const size_t firstPlacements = reader.GetModel().placements.size();
117 reader.Parse( fixtureBytes( wxS(
"placement_transform" ) ), fixture( wxS(
"placement_transform" ) ) ) );
118 BOOST_CHECK_NE( reader.GetModel().placements.size(), firstPlacements );
119 BOOST_CHECK_EQUAL( reader.GetModel().settings.source.file, fixture( wxS(
"placement_transform" ) ) );
BOOST_CHECK_EQUAL(result, "25.4")