/* * Copyright (C) 2017-2020 The Project X-Ray Authors. * * Use of this source code is governed by a ISC-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/ISC * * SPDX-License-Identifier: ISC */ #include #include #include #include #include using namespace prjxray::xilinx; TEST(FramesTest, FillInMissingFrames) { std::vector test_part_addresses = { xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0, 0, 0), xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0, 0, 1), xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0, 0, 2), xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0, 0, 3), xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0, 0, 4)}; xc7series::Part test_part(0x1234, test_part_addresses); Frames frames; frames.getFrames().emplace(std::make_pair( xc7series::FrameAddress(2), std::vector(101, 0xCC))); frames.getFrames().emplace(std::make_pair( xc7series::FrameAddress(3), std::vector(101, 0xDD))); frames.getFrames().emplace(std::make_pair( xc7series::FrameAddress(4), std::vector(101, 0xEE))); ASSERT_EQ(frames.getFrames().size(), 3); EXPECT_EQ(frames.getFrames().at(test_part_addresses[2]), std::vector(101, 0xCC)); EXPECT_EQ(frames.getFrames().at(test_part_addresses[3]), std::vector(101, 0xDD)); EXPECT_EQ(frames.getFrames().at(test_part_addresses[4]), std::vector(101, 0xEE)); frames.addMissingFrames(test_part); ASSERT_EQ(frames.getFrames().size(), 5); EXPECT_EQ(frames.getFrames().at(test_part_addresses[0]), std::vector(101, 0)); EXPECT_EQ(frames.getFrames().at(test_part_addresses[1]), std::vector(101, 0)); EXPECT_EQ(frames.getFrames().at(test_part_addresses[2]), std::vector(101, 0xCC)); EXPECT_EQ(frames.getFrames().at(test_part_addresses[3]), std::vector(101, 0xDD)); EXPECT_EQ(frames.getFrames().at(test_part_addresses[4]), std::vector(101, 0xEE)); }