/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include #include #include #include "mozilla/Array.h" void TestInitialValueByConstructor() { using namespace mozilla; // Style 1 Array arr1(1, 2, 3); MOZ_RELEASE_ASSERT(arr1[0] == 1); MOZ_RELEASE_ASSERT(arr1[1] == 2); MOZ_RELEASE_ASSERT(arr1[2] == 3); // Style 2 Array arr2{5, 6, 7}; MOZ_RELEASE_ASSERT(arr2[0] == 5); MOZ_RELEASE_ASSERT(arr2[1] == 6); MOZ_RELEASE_ASSERT(arr2[2] == 7); // Style 3 Array arr3({8, 9, 10}); MOZ_RELEASE_ASSERT(arr3[0] == 8); MOZ_RELEASE_ASSERT(arr3[1] == 9); MOZ_RELEASE_ASSERT(arr3[2] == 10); } void TestStdData() { using namespace mozilla; Array arr(1, 2, 3, 4); static_assert(std::is_same_v); MOZ_RELEASE_ASSERT(*std::data(arr) == 1); MOZ_RELEASE_ASSERT(std::data(arr) == &arr[0]); MOZ_RELEASE_ASSERT(std::data(arr) == arr.begin()); const Array const_arr(1); static_assert(std::is_same_v); MOZ_RELEASE_ASSERT(*std::data(arr) == 1); } int main() { TestInitialValueByConstructor(); TestStdData(); return 0; }