| 13 | }; |
| 14 | |
| 15 | TEST_F(QuipFactoryTest, BasicDataStructures) { |
| 16 | // Test basic data structures |
| 17 | std::array<uint8_t, 32> vault_id = {}; |
| 18 | vault_id.fill(0x01); |
| 19 | |
| 20 | // Test WinternitzAddress structure |
| 21 | struct WinternitzAddress { |
| 22 | std::array<uint8_t, 32> publicSeed; |
| 23 | std::array<uint8_t, 32> publicKeyHash; |
| 24 | }; |
| 25 | |
| 26 | WinternitzAddress pq_to = {}; |
| 27 | pq_to.publicSeed.fill(0x02); |
| 28 | pq_to.publicKeyHash.fill(0x03); |
| 29 | |
| 30 | // Test Ethereum address format |
| 31 | std::string valid_address = "0x1234567890123456789012345678901234567890"; |
| 32 | |
| 33 | // Basic assertions |
| 34 | EXPECT_EQ(vault_id.size(), 32); |
| 35 | EXPECT_EQ(valid_address.length(), 42); |
| 36 | EXPECT_EQ(valid_address.substr(0, 2), "0x"); |
| 37 | EXPECT_EQ(pq_to.publicSeed.size(), 32); |
| 38 | EXPECT_EQ(pq_to.publicKeyHash.size(), 32); |
| 39 | |
| 40 | // Test hex validation |
| 41 | bool valid_hex = true; |
| 42 | for (size_t i = 2; i < valid_address.length(); ++i) { |
| 43 | char c = valid_address[i]; |
| 44 | if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || |
| 45 | (c >= 'A' && c <= 'F'))) { |
| 46 | valid_hex = false; |
| 47 | break; |
| 48 | } |
| 49 | } |
| 50 | EXPECT_TRUE(valid_hex); |
| 51 | |
| 52 | // Test byte values |
| 53 | for (const auto &byte : vault_id) { |
| 54 | EXPECT_EQ(byte, 0x01); |
| 55 | } |
| 56 | |
| 57 | for (const auto &byte : pq_to.publicSeed) { |
| 58 | EXPECT_EQ(byte, 0x02); |
| 59 | } |
| 60 | |
| 61 | for (const auto &byte : pq_to.publicKeyHash) { |
| 62 | EXPECT_EQ(byte, 0x03); |
| 63 | } |
| 64 | } |
nothing calls this directly
no outgoing calls
no test coverage detected