| // Copyright 2016 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "src/algorithms/rappor/rappor_test_utils.h" |
| |
| #include <gtest/gtest.h> |
| |
| namespace cobalt::rappor { |
| |
| // Tests the function DataToBinaryString(). |
| TEST(TestUtilsTest, DataToBinaryString) { |
| // One byte |
| EXPECT_EQ(DataToBinaryString(std::string("\0", 1)), "00000000"); |
| EXPECT_EQ(DataToBinaryString(std::string("\x1", 1)), "00000001"); |
| EXPECT_EQ(DataToBinaryString(std::string("\x2", 1)), "00000010"); |
| EXPECT_EQ(DataToBinaryString(std::string("\x3", 1)), "00000011"); |
| EXPECT_EQ(DataToBinaryString(std::string("\xFE", 1)), "11111110"); |
| |
| // Two bytes |
| EXPECT_EQ(DataToBinaryString(std::string("\0\0", 2)), "0000000000000000"); |
| EXPECT_EQ(DataToBinaryString(std::string("\0\1", 2)), "0000000000000001"); |
| EXPECT_EQ(DataToBinaryString(std::string("\1\0", 2)), "0000000100000000"); |
| EXPECT_EQ(DataToBinaryString(std::string("\0\1", 2)), "0000000000000001"); |
| EXPECT_EQ(DataToBinaryString(std::string("\1\xFE", 2)), "0000000111111110"); |
| |
| // Three bytes |
| EXPECT_EQ(DataToBinaryString(std::string("\0\0\0", 3)), "000000000000000000000000"); |
| EXPECT_EQ(DataToBinaryString(std::string("\0\0\1", 3)), "000000000000000000000001"); |
| EXPECT_EQ(DataToBinaryString(std::string("\0\1\0", 3)), "000000000000000100000000"); |
| EXPECT_EQ(DataToBinaryString(std::string("\1\1\0", 3)), "000000010000000100000000"); |
| } |
| |
| // Test the function BinaryStringToData |
| TEST(TestUtilsTest, BinaryStringToData) { |
| // One byte |
| EXPECT_EQ(std::string("\0", 1), BinaryStringToData("00000000")); |
| EXPECT_EQ(std::string("\1", 1), BinaryStringToData("00000001")); |
| EXPECT_EQ(std::string("\x2", 1), BinaryStringToData("00000010")); |
| EXPECT_EQ(std::string("\x3", 1), BinaryStringToData("00000011")); |
| EXPECT_EQ(std::string("\xFE", 1), BinaryStringToData("11111110")); |
| |
| // Two bytes |
| EXPECT_EQ(std::string("\0\0", 2), BinaryStringToData("0000000000000000")); |
| EXPECT_EQ(std::string("\0\1", 2), BinaryStringToData("0000000000000001")); |
| EXPECT_EQ(std::string("\1\0", 2), BinaryStringToData("0000000100000000")); |
| EXPECT_EQ(std::string("\1\xFE", 2), BinaryStringToData("0000000111111110")); |
| |
| // Three bytes |
| EXPECT_EQ(std::string("\0\0\0", 3), BinaryStringToData("000000000000000000000000")); |
| EXPECT_EQ(std::string("\0\0\1", 3), BinaryStringToData("000000000000000000000001")); |
| EXPECT_EQ(std::string("\0\1\0", 3), BinaryStringToData("000000000000000100000000")); |
| EXPECT_EQ(std::string("\1\1\0", 3), BinaryStringToData("000000010000000100000000")); |
| } |
| |
| } // namespace cobalt::rappor |