| /* | 
 |  * 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 <prjxray/xilinx/spartan6/frame_address.h> | 
 |  | 
 | #include <gtest/gtest.h> | 
 |  | 
 | using namespace prjxray::xilinx; | 
 |  | 
 | TEST(FrameAddressTest, YamlEncode) { | 
 | 	spartan6::FrameAddress address(spartan6::BlockType::BLOCK_RAM, 10, 0, | 
 | 	                               5); | 
 |  | 
 | 	YAML::Node node(address); | 
 |  | 
 | 	EXPECT_EQ(node.Tag(), "xilinx/spartan6/frame_address"); | 
 | 	EXPECT_EQ(node["block_type"].as<std::string>(), "BLOCK_RAM"); | 
 | 	EXPECT_EQ(node["row"].as<std::string>(), "10"); | 
 | 	EXPECT_EQ(node["column"].as<std::string>(), "0"); | 
 | 	EXPECT_EQ(node["minor"].as<std::string>(), "5"); | 
 | } | 
 |  | 
 | TEST(FrameAddressTest, YamlDecode) { | 
 | 	YAML::Node node; | 
 | 	node.SetTag("xilinx/spartan6/frame_address"); | 
 | 	node["block_type"] = "BLOCK_RAM"; | 
 | 	node["row"] = "0"; | 
 | 	node["column"] = "5"; | 
 | 	node["minor"] = "11"; | 
 |  | 
 | 	spartan6::FrameAddress address = node.as<spartan6::FrameAddress>(); | 
 | 	EXPECT_EQ(address.block_type(), spartan6::BlockType::BLOCK_RAM); | 
 | 	EXPECT_EQ(address.row(), 0); | 
 | 	EXPECT_EQ(address.column(), 5); | 
 | 	EXPECT_EQ(address.minor(), 11); | 
 | } |