#include #include #include #include TEST(SegbitsFileReaderTest, NonExistantFileReturnsNull) { EXPECT_FALSE( prjxray::SegbitsFileReader::InitWithFile("does_not_exist")); } TEST(SegbitsFileReaderTest, ZeroLengthFileYieldsNoItems) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile("empty_file"); ASSERT_TRUE(segbits_reader); EXPECT_EQ(segbits_reader->begin(), segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntry) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile("one_entry.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(begin_iter->bit(), "31_06"); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntryWithEmptyTag) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile( "one_entry_empty_tag.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), ""); EXPECT_EQ(begin_iter->bit(), "31_06"); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntryMissingBit) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile( "one_entry_missing_bit.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(begin_iter->bit(), ""); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntryWithExtraWhitespace) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile( "one_entry_extra_whitespace.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(begin_iter->bit(), "31_06"); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithTwoEntries) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile("two_entries.segbits"); ASSERT_TRUE(segbits_reader); auto iter = segbits_reader->begin(); EXPECT_EQ(iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(iter->bit(), "31_06"); ++iter; EXPECT_EQ(iter->tag(), "CLBLL_L.SLICEL_X0.AFF.ZINI"); EXPECT_EQ(iter->bit(), "31_03"); EXPECT_EQ(++iter, segbits_reader->end()); }