aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/tests.strings.cpp
blob: f541a203d9d5459f3b79b29e722a815bf06fb823 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "tests.pch.h"

#include <vcpkg/base/strings.h>

#include <cstdint>
#include <utility>
#include <vector>

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest1
{
    class StringsTest : public TestClass<StringsTest>
    {
        TEST_METHOD(b64url_encode)
        {
            using u64 = std::uint64_t;

            std::vector<std::pair<std::uint64_t, std::string>> map;

            map.emplace_back(0, "AAAAAAAAAAAAA");
            map.emplace_back(1, "BAAAAAAAAAAAA");

            map.emplace_back(u64(1) << 32, "AAAAAAEAAAAAA");
            map.emplace_back((u64(1) << 32) + 1, "BAAAAAEAAAAAA");

            map.emplace_back(0xE4D0'1065'D11E'0229, "JRA4RIXMQAUJO");
            map.emplace_back(0xA626'FE45'B135'07FF, "77BKTYWI6XJMK");
            map.emplace_back(0xEE36'D228'0C31'D405, "FAVDDGAFSWN4O");
            map.emplace_back(0x1405'64E7'FE7E'A88C, "MEK5H774ELBIB");
            map.emplace_back(0xFFFF'FFFF'FFFF'FFFF, "777777777777P");

            std::string result;
            for (const auto& pr : map)
            {
                result = vcpkg::Strings::b32_encode(pr.first);
                Assert::AreEqual(result, pr.second);
            }
        }
    };
}