react-native-quick-crypto 1.0.18 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/QuickCrypto.podspec +12 -38
- package/README.md +2 -0
- package/android/CMakeLists.txt +3 -0
- package/cpp/utils/HybridUtils.cpp +39 -77
- package/deps/simdutf/.clang-format +4 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +62 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +35 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +29 -0
- package/deps/simdutf/.github/pull_request_template.md +51 -0
- package/deps/simdutf/.github/workflows/aarch64.yml +39 -0
- package/deps/simdutf/.github/workflows/alpine.yml +27 -0
- package/deps/simdutf/.github/workflows/amalgamation_demos.yml +34 -0
- package/deps/simdutf/.github/workflows/armv7.yml +32 -0
- package/deps/simdutf/.github/workflows/atomic_fuzz.yml +25 -0
- package/deps/simdutf/.github/workflows/cifuzz.yml +37 -0
- package/deps/simdutf/.github/workflows/clangformat.yml +36 -0
- package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +40 -0
- package/deps/simdutf/.github/workflows/debian.yml +33 -0
- package/deps/simdutf/.github/workflows/documentation.yml +36 -0
- package/deps/simdutf/.github/workflows/emscripten.yml +19 -0
- package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +39 -0
- package/deps/simdutf/.github/workflows/macos-latest.yml +29 -0
- package/deps/simdutf/.github/workflows/msys2-clang.yml +48 -0
- package/deps/simdutf/.github/workflows/msys2.yml +50 -0
- package/deps/simdutf/.github/workflows/ppc64le.yml +29 -0
- package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +31 -0
- package/deps/simdutf/.github/workflows/s390x.yml +29 -0
- package/deps/simdutf/.github/workflows/selective-amalgamation.yml +29 -0
- package/deps/simdutf/.github/workflows/typos.yml +19 -0
- package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +30 -0
- package/deps/simdutf/.github/workflows/ubuntu22.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +27 -0
- package/deps/simdutf/.github/workflows/ubuntu22sani.yml +29 -0
- package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani.yml +36 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +29 -0
- package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +21 -0
- package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +36 -0
- package/deps/simdutf/AI_USAGE_POLICY.md +56 -0
- package/deps/simdutf/AUTHORS +6 -0
- package/deps/simdutf/CMakeLists.txt +231 -0
- package/deps/simdutf/CONTRIBUTING.md +214 -0
- package/deps/simdutf/CONTRIBUTORS +1 -0
- package/deps/simdutf/Doxyfile +2584 -0
- package/deps/simdutf/LICENSE-APACHE +201 -0
- package/deps/simdutf/LICENSE-MIT +18 -0
- package/deps/simdutf/Makefile.crosscompile +54 -0
- package/deps/simdutf/README-RVV.md +16 -0
- package/deps/simdutf/README.md +2782 -0
- package/deps/simdutf/SECURITY.md +8 -0
- package/deps/simdutf/benchmarks/CMakeLists.txt +101 -0
- package/deps/simdutf/benchmarks/alignment.cpp +150 -0
- package/deps/simdutf/benchmarks/base64/CMakeLists.txt +30 -0
- package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +875 -0
- package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +49 -0
- package/deps/simdutf/benchmarks/base64/node_base64.h +227 -0
- package/deps/simdutf/benchmarks/base64/openssl3_base64.h +334 -0
- package/deps/simdutf/benchmarks/benchmark.cpp +65 -0
- package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +347 -0
- package/deps/simdutf/benchmarks/competition/.clang-format-ignore +5 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +1276 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +595 -0
- package/deps/simdutf/benchmarks/competition/README.md +7 -0
- package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +91 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +444 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +13183 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/script.py +73 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +738 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +293 -0
- package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +8 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Makefile +44 -0
- package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +169 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +148 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +45 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +34 -0
- package/deps/simdutf/benchmarks/competition/u8u16/README +56 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +43 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +27 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +28 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +20 -0
- package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +440 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +121 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +158 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +270 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +141 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +216 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +119 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +2430 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +39 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +421 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +836 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +222 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +4 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +5 -0
- package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +390 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +448 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +284 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +1975 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +2263 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +239 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +232 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +194 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +193 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +167 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +288 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +117 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +44 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +106 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +10 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +9 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +25 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +94 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +20 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +1 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +75 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +47 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +17 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +76 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +35 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +117 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +210 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +158 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +104 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +334 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +186 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +140 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +42 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +100 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +57 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +85 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +27 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +126 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +108 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +139 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +74 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +65 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +91 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +772 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +486 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +162 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +15 -0
- package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +292 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/README.md +1503 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +335 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +338 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +274 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +34 -0
- package/deps/simdutf/benchmarks/dataset/README.md +155 -0
- package/deps/simdutf/benchmarks/dataset/emoji.txt +204 -0
- package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +40 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +80 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +20 -0
- package/deps/simdutf/benchmarks/find/CMakeLists.txt +6 -0
- package/deps/simdutf/benchmarks/find/findbenchmark.cpp +63 -0
- package/deps/simdutf/benchmarks/find/findbenchmarker.h +46 -0
- package/deps/simdutf/benchmarks/shortbench.cpp +555 -0
- package/deps/simdutf/benchmarks/src/CMakeLists.txt +52 -0
- package/deps/simdutf/benchmarks/src/apple_arm_events.h +1104 -0
- package/deps/simdutf/benchmarks/src/benchmark.cpp +3899 -0
- package/deps/simdutf/benchmarks/src/benchmark.h +317 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.cpp +144 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.h +98 -0
- package/deps/simdutf/benchmarks/src/cmdline.cpp +176 -0
- package/deps/simdutf/benchmarks/src/cmdline.h +35 -0
- package/deps/simdutf/benchmarks/src/event_counter.h +162 -0
- package/deps/simdutf/benchmarks/src/linux-perf-events.h +104 -0
- package/deps/simdutf/benchmarks/stream.cpp +209 -0
- package/deps/simdutf/benchmarks/threaded.cpp +123 -0
- package/deps/simdutf/cmake/CPM.cmake +1363 -0
- package/deps/simdutf/cmake/JoinPaths.cmake +23 -0
- package/deps/simdutf/cmake/add_cpp_test.cmake +68 -0
- package/deps/simdutf/cmake/simdutf-config.cmake.in +2 -0
- package/deps/simdutf/cmake/simdutf-flags.cmake +26 -0
- package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +4 -0
- package/deps/simdutf/cmake/toolchains-dev/README.md +32 -0
- package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +14 -0
- package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +22 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +38 -0
- package/deps/simdutf/doc/avx512.png +0 -0
- package/deps/simdutf/doc/logo.png +0 -0
- package/deps/simdutf/doc/logo.svg +165 -0
- package/deps/simdutf/doc/node2023.png +0 -0
- package/deps/simdutf/doc/shortinput.md +78 -0
- package/deps/simdutf/doc/utf16utf8.png +0 -0
- package/deps/simdutf/doc/utf8utf16.png +0 -0
- package/deps/simdutf/doc/widelogo.png +0 -0
- package/deps/simdutf/doxygen.py +50 -0
- package/deps/simdutf/fuzz/.clang-format +9 -0
- package/deps/simdutf/fuzz/CMakeLists.txt +45 -0
- package/deps/simdutf/fuzz/README.md +168 -0
- package/deps/simdutf/fuzz/atomic_base64.cpp +448 -0
- package/deps/simdutf/fuzz/base64.cpp +278 -0
- package/deps/simdutf/fuzz/build.sh +83 -0
- package/deps/simdutf/fuzz/conversion.cpp +669 -0
- package/deps/simdutf/fuzz/helpers/.clang-format-ignore +1 -0
- package/deps/simdutf/fuzz/helpers/common.h +135 -0
- package/deps/simdutf/fuzz/helpers/nameof.hpp +1258 -0
- package/deps/simdutf/fuzz/main.cpp +72 -0
- package/deps/simdutf/fuzz/minimize_and_cleanse.sh +87 -0
- package/deps/simdutf/fuzz/misc.cpp +216 -0
- package/deps/simdutf/fuzz/random_fuzz.sh +154 -0
- package/deps/simdutf/fuzz/roundtrip.cpp +588 -0
- package/deps/simdutf/fuzz/safe_conversion.cpp +104 -0
- package/deps/simdutf/include/simdutf/avx512.h +79 -0
- package/deps/simdutf/include/simdutf/base64_implementation.h +158 -0
- package/deps/simdutf/include/simdutf/base64_tables.h +887 -0
- package/deps/simdutf/include/simdutf/common_defs.h +186 -0
- package/deps/simdutf/include/simdutf/compiler_check.h +50 -0
- package/deps/simdutf/include/simdutf/constexpr_ptr.h +138 -0
- package/deps/simdutf/include/simdutf/encoding_types.h +189 -0
- package/deps/simdutf/include/simdutf/error.h +126 -0
- package/deps/simdutf/include/simdutf/implementation.h +7081 -0
- package/deps/simdutf/include/simdutf/internal/isadetection.h +325 -0
- package/deps/simdutf/include/simdutf/portability.h +285 -0
- package/deps/simdutf/include/simdutf/scalar/ascii.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/atomic_util.h +105 -0
- package/deps/simdutf/include/simdutf/scalar/base64.h +911 -0
- package/deps/simdutf/include/simdutf/scalar/latin1.h +26 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf16/latin1_to_utf16.h +52 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf32/latin1_to_utf32.h +27 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf8/latin1_to_utf8.h +191 -0
- package/deps/simdutf/include/simdutf/scalar/swap_bytes.h +35 -0
- package/deps/simdutf/include/simdutf/scalar/utf16.h +226 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/utf16_to_latin1.h +108 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/valid_utf16_to_latin1.h +40 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/utf16_to_utf32.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/valid_utf16_to_utf32.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/utf16_to_utf8.h +295 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/valid_utf16_to_utf8.h +91 -0
- package/deps/simdutf/include/simdutf/scalar/utf32.h +82 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/utf32_to_latin1.h +68 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/valid_utf32_to_latin1.h +67 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/utf32_to_utf16.h +84 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/valid_utf32_to_utf16.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/utf32_to_utf8.h +142 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/valid_utf32_to_utf8.h +72 -0
- package/deps/simdutf/include/simdutf/scalar/utf8.h +326 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/utf8_to_latin1.h +225 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/valid_utf8_to_latin1.h +87 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/utf8_to_utf16.h +342 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/valid_utf8_to_utf16.h +106 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/utf8_to_utf32.h +299 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/valid_utf8_to_utf32.h +83 -0
- package/deps/simdutf/include/simdutf/simdutf_version.h +26 -0
- package/deps/simdutf/include/simdutf.h +26 -0
- package/deps/simdutf/include/simdutf_c.h +342 -0
- package/deps/simdutf/riscv/Dockerfile +16 -0
- package/deps/simdutf/riscv/README.md +24 -0
- package/deps/simdutf/riscv/remove-docker-station +8 -0
- package/deps/simdutf/riscv/run-docker-station +31 -0
- package/deps/simdutf/scripts/.flake8 +2 -0
- package/deps/simdutf/scripts/Makefile +2 -0
- package/deps/simdutf/scripts/README_ADD_FUNCTION.md +49 -0
- package/deps/simdutf/scripts/add_function.py +330 -0
- package/deps/simdutf/scripts/amalgamation_tests.py +156 -0
- package/deps/simdutf/scripts/base64/Makefile +2 -0
- package/deps/simdutf/scripts/base64/README.md +2 -0
- package/deps/simdutf/scripts/base64/avx512.py +76 -0
- package/deps/simdutf/scripts/base64/neon_decode.py +143 -0
- package/deps/simdutf/scripts/base64/neon_generate_lut.py +101 -0
- package/deps/simdutf/scripts/base64/sse.py +252 -0
- package/deps/simdutf/scripts/base64/sseregular.py +160 -0
- package/deps/simdutf/scripts/base64/sseurl.py +283 -0
- package/deps/simdutf/scripts/base64/table.py +59 -0
- package/deps/simdutf/scripts/base64bench_print.py +145 -0
- package/deps/simdutf/scripts/benchmark-all.py +119 -0
- package/deps/simdutf/scripts/benchmark_print.py +324 -0
- package/deps/simdutf/scripts/check_feature_macros.py +156 -0
- package/deps/simdutf/scripts/check_typos.sh +13 -0
- package/deps/simdutf/scripts/clang_format.sh +35 -0
- package/deps/simdutf/scripts/clang_format_docker.sh +38 -0
- package/deps/simdutf/scripts/common.py +24 -0
- package/deps/simdutf/scripts/compilation_benchmark.py +55 -0
- package/deps/simdutf/scripts/compile_many_variations.sh +64 -0
- package/deps/simdutf/scripts/create_latex_table.py +62 -0
- package/deps/simdutf/scripts/docker/Dockerfile +14 -0
- package/deps/simdutf/scripts/docker/Makefile +9 -0
- package/deps/simdutf/scripts/docker/README.md +30 -0
- package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
- package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +155 -0
- package/deps/simdutf/scripts/prepare_doxygen.sh +21 -0
- package/deps/simdutf/scripts/release.py +197 -0
- package/deps/simdutf/scripts/shortinputplots.py +97 -0
- package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +422 -0
- package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +105 -0
- package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +186 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +137 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +129 -0
- package/deps/simdutf/scripts/table.py +207 -0
- package/deps/simdutf/scripts/tests/new.txt +33 -0
- package/deps/simdutf/scripts/tests/old.txt +33 -0
- package/deps/simdutf/scripts/tests/results.txt +272 -0
- package/deps/simdutf/simdutf.pc.in +11 -0
- package/deps/simdutf/singleheader/.flake8 +2 -0
- package/deps/simdutf/singleheader/CMakeLists.txt +64 -0
- package/deps/simdutf/singleheader/README-dev.md +81 -0
- package/deps/simdutf/singleheader/README.md +19 -0
- package/deps/simdutf/singleheader/amalgamate.py +513 -0
- package/deps/simdutf/singleheader/amalgamation_demo.c +59 -0
- package/deps/simdutf/singleheader/amalgamation_demo.cpp +54 -0
- package/deps/simdutf/singleheader/test-features.py +262 -0
- package/deps/simdutf/src/CMakeLists.txt +78 -0
- package/deps/simdutf/src/arm64/arm_base64.cpp +791 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf16.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf32.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf8.cpp +70 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_latin1.cpp +61 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf32.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf8.cpp +780 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_latin1.cpp +60 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf16.cpp +208 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf8.cpp +505 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf16.cpp +313 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/arm64/arm_find.cpp +199 -0
- package/deps/simdutf/src/arm64/arm_utf16fix.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_validate_utf16.cpp +165 -0
- package/deps/simdutf/src/arm64/arm_validate_utf32le.cpp +65 -0
- package/deps/simdutf/src/arm64/implementation.cpp +1442 -0
- package/deps/simdutf/src/encoding_types.cpp +67 -0
- package/deps/simdutf/src/error.cpp +3 -0
- package/deps/simdutf/src/fallback/implementation.cpp +589 -0
- package/deps/simdutf/src/generic/ascii_validation.h +50 -0
- package/deps/simdutf/src/generic/base64.h +233 -0
- package/deps/simdutf/src/generic/base64lengths.h +63 -0
- package/deps/simdutf/src/generic/buf_block_reader.h +109 -0
- package/deps/simdutf/src/generic/find.h +75 -0
- package/deps/simdutf/src/generic/utf16/change_endianness.h +24 -0
- package/deps/simdutf/src/generic/utf16/count_code_points_bytemask.h +58 -0
- package/deps/simdutf/src/generic/utf16/to_well_formed.h +93 -0
- package/deps/simdutf/src/generic/utf16/utf32_length_from_utf16.h +15 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16.h +35 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16_bytemask.h +199 -0
- package/deps/simdutf/src/generic/utf16.h +73 -0
- package/deps/simdutf/src/generic/utf32.h +136 -0
- package/deps/simdutf/src/generic/utf8/utf16_length_from_utf8_bytemask.h +53 -0
- package/deps/simdutf/src/generic/utf8.h +92 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/utf8_to_latin1.h +316 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/valid_utf8_to_latin1.h +78 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/utf8_to_utf16.h +332 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/valid_utf8_to_utf16.h +74 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/utf8_to_utf32.h +318 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/valid_utf8_to_utf32.h +42 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_lookup4_algorithm.h +223 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_validator.h +84 -0
- package/deps/simdutf/src/generic/validate_utf16.h +164 -0
- package/deps/simdutf/src/generic/validate_utf32.h +99 -0
- package/deps/simdutf/src/haswell/avx2_base64.cpp +837 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf16.cpp +28 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf32.cpp +20 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf8.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_latin1.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf32.cpp +210 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf8.cpp +602 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_latin1.cpp +116 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf16.cpp +164 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf8.cpp +569 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_latin1.cpp +60 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf16.cpp +195 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf32.cpp +135 -0
- package/deps/simdutf/src/haswell/avx2_utf16fix.cpp +173 -0
- package/deps/simdutf/src/haswell/avx2_validate_utf16.cpp +17 -0
- package/deps/simdutf/src/haswell/implementation.cpp +1447 -0
- package/deps/simdutf/src/icelake/icelake_ascii_validation.inl.cpp +19 -0
- package/deps/simdutf/src/icelake/icelake_base64.inl.cpp +630 -0
- package/deps/simdutf/src/icelake/icelake_common.inl.cpp +37 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf16.inl.cpp +36 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf32.inl.cpp +23 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf8.inl.cpp +107 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_latin1.inl.cpp +103 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf32.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf8.inl.cpp +206 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_latin1.inl.cpp +74 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf16.inl.cpp +338 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf8.inl.cpp +574 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_latin1.inl.cpp +104 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_utf16.inl.cpp +75 -0
- package/deps/simdutf/src/icelake/icelake_convert_valid_utf8_to_latin1.inl.cpp +69 -0
- package/deps/simdutf/src/icelake/icelake_find.inl.cpp +146 -0
- package/deps/simdutf/src/icelake/icelake_from_utf8.inl.cpp +266 -0
- package/deps/simdutf/src/icelake/icelake_from_valid_utf8.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_macros.inl.cpp +143 -0
- package/deps/simdutf/src/icelake/icelake_utf16fix.cpp +138 -0
- package/deps/simdutf/src/icelake/icelake_utf32_validation.inl.cpp +63 -0
- package/deps/simdutf/src/icelake/icelake_utf8_common.inl.cpp +753 -0
- package/deps/simdutf/src/icelake/icelake_utf8_length_from_utf16.inl.cpp +269 -0
- package/deps/simdutf/src/icelake/icelake_utf8_validation.inl.cpp +116 -0
- package/deps/simdutf/src/icelake/implementation.cpp +1903 -0
- package/deps/simdutf/src/implementation.cpp +2526 -0
- package/deps/simdutf/src/lasx/implementation.cpp +1531 -0
- package/deps/simdutf/src/lasx/lasx_base64.cpp +695 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf16.cpp +76 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf32.cpp +55 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf8.cpp +65 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf32.cpp +183 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf8.cpp +550 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_latin1.cpp +73 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf16.cpp +218 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_latin1.cpp +72 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf16.cpp +296 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf32.cpp +190 -0
- package/deps/simdutf/src/lasx/lasx_find.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf32le.cpp +84 -0
- package/deps/simdutf/src/lsx/implementation.cpp +1417 -0
- package/deps/simdutf/src/lsx/lsx_base64.cpp +675 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf16.cpp +39 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf32.cpp +27 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf8.cpp +56 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf32.cpp +133 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf8.cpp +518 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_latin1.cpp +66 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf16.cpp +155 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf8.cpp +459 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_latin1.cpp +75 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf16.cpp +291 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/lsx/lsx_find.cpp +60 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf32le.cpp +68 -0
- package/deps/simdutf/src/ppc64/implementation.cpp +992 -0
- package/deps/simdutf/src/ppc64/ppc64_base64.cpp +480 -0
- package/deps/simdutf/src/ppc64/ppc64_base64_internal_tests.cpp +401 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf16.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf32.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf8.cpp +149 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_latin1.cpp +67 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf32.cpp +87 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf8.cpp +296 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_latin1.cpp +57 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf16.cpp +117 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf8.cpp +166 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf16.cpp +211 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf32.cpp +153 -0
- package/deps/simdutf/src/ppc64/ppc64_utf16_to_utf8_tables.h +1011 -0
- package/deps/simdutf/src/ppc64/ppc64_utf8_length_from_latin1.cpp +37 -0
- package/deps/simdutf/src/ppc64/ppc64_validate_utf16.cpp +19 -0
- package/deps/simdutf/src/ppc64/templates.cpp +91 -0
- package/deps/simdutf/src/rvv/implementation.cpp +138 -0
- package/deps/simdutf/src/rvv/rvv_find.cpp +27 -0
- package/deps/simdutf/src/rvv/rvv_helpers.inl.cpp +23 -0
- package/deps/simdutf/src/rvv/rvv_latin1_to.inl.cpp +71 -0
- package/deps/simdutf/src/rvv/rvv_length_from.inl.cpp +164 -0
- package/deps/simdutf/src/rvv/rvv_utf16_to.inl.cpp +399 -0
- package/deps/simdutf/src/rvv/rvv_utf16fix.cpp +110 -0
- package/deps/simdutf/src/rvv/rvv_utf32_to.inl.cpp +307 -0
- package/deps/simdutf/src/rvv/rvv_utf8_to.inl.cpp +435 -0
- package/deps/simdutf/src/rvv/rvv_validate.inl.cpp +275 -0
- package/deps/simdutf/src/simdutf/arm64/begin.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/bitmanipulation.h +34 -0
- package/deps/simdutf/src/simdutf/arm64/end.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/implementation.h +307 -0
- package/deps/simdutf/src/simdutf/arm64/intrinsics.h +10 -0
- package/deps/simdutf/src/simdutf/arm64/simd.h +547 -0
- package/deps/simdutf/src/simdutf/arm64/simd16-inl.h +403 -0
- package/deps/simdutf/src/simdutf/arm64/simd32-inl.h +129 -0
- package/deps/simdutf/src/simdutf/arm64/simd64-inl.h +28 -0
- package/deps/simdutf/src/simdutf/arm64.h +43 -0
- package/deps/simdutf/src/simdutf/fallback/begin.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/bitmanipulation.h +13 -0
- package/deps/simdutf/src/simdutf/fallback/end.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/implementation.h +331 -0
- package/deps/simdutf/src/simdutf/fallback.h +42 -0
- package/deps/simdutf/src/simdutf/haswell/begin.h +15 -0
- package/deps/simdutf/src/simdutf/haswell/bitmanipulation.h +35 -0
- package/deps/simdutf/src/simdutf/haswell/end.h +13 -0
- package/deps/simdutf/src/simdutf/haswell/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/haswell/intrinsics.h +67 -0
- package/deps/simdutf/src/simdutf/haswell/simd.h +363 -0
- package/deps/simdutf/src/simdutf/haswell/simd16-inl.h +261 -0
- package/deps/simdutf/src/simdutf/haswell/simd32-inl.h +111 -0
- package/deps/simdutf/src/simdutf/haswell/simd64-inl.h +34 -0
- package/deps/simdutf/src/simdutf/haswell.h +63 -0
- package/deps/simdutf/src/simdutf/icelake/begin.h +14 -0
- package/deps/simdutf/src/simdutf/icelake/bitmanipulation.h +44 -0
- package/deps/simdutf/src/simdutf/icelake/end.h +12 -0
- package/deps/simdutf/src/simdutf/icelake/implementation.h +346 -0
- package/deps/simdutf/src/simdutf/icelake/intrinsics.h +138 -0
- package/deps/simdutf/src/simdutf/icelake/simd.h +17 -0
- package/deps/simdutf/src/simdutf/icelake/simd16-inl.h +90 -0
- package/deps/simdutf/src/simdutf/icelake/simd32-inl.h +47 -0
- package/deps/simdutf/src/simdutf/icelake.h +81 -0
- package/deps/simdutf/src/simdutf/lasx/begin.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lasx/end.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/implementation.h +310 -0
- package/deps/simdutf/src/simdutf/lasx/intrinsics.h +319 -0
- package/deps/simdutf/src/simdutf/lasx/simd.h +551 -0
- package/deps/simdutf/src/simdutf/lasx/simd16-inl.h +234 -0
- package/deps/simdutf/src/simdutf/lasx/simd32-inl.h +74 -0
- package/deps/simdutf/src/simdutf/lasx/simd64-inl.h +52 -0
- package/deps/simdutf/src/simdutf/lasx.h +49 -0
- package/deps/simdutf/src/simdutf/lsx/begin.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lsx/end.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/implementation.h +309 -0
- package/deps/simdutf/src/simdutf/lsx/intrinsics.h +196 -0
- package/deps/simdutf/src/simdutf/lsx/simd.h +421 -0
- package/deps/simdutf/src/simdutf/lsx/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/lsx/simd32-inl.h +69 -0
- package/deps/simdutf/src/simdutf/lsx/simd64-inl.h +50 -0
- package/deps/simdutf/src/simdutf/lsx.h +52 -0
- package/deps/simdutf/src/simdutf/ppc64/begin.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/bitmanipulation.h +29 -0
- package/deps/simdutf/src/simdutf/ppc64/end.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/implementation.h +348 -0
- package/deps/simdutf/src/simdutf/ppc64/intrinsics.h +19 -0
- package/deps/simdutf/src/simdutf/ppc64/simd.h +177 -0
- package/deps/simdutf/src/simdutf/ppc64/simd16-inl.h +327 -0
- package/deps/simdutf/src/simdutf/ppc64/simd32-inl.h +247 -0
- package/deps/simdutf/src/simdutf/ppc64/simd8-inl.h +618 -0
- package/deps/simdutf/src/simdutf/ppc64.h +40 -0
- package/deps/simdutf/src/simdutf/rvv/begin.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/end.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/implementation.h +321 -0
- package/deps/simdutf/src/simdutf/rvv/intrinsics.h +131 -0
- package/deps/simdutf/src/simdutf/rvv.h +41 -0
- package/deps/simdutf/src/simdutf/westmere/begin.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/bitmanipulation.h +37 -0
- package/deps/simdutf/src/simdutf/westmere/end.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/westmere/intrinsics.h +38 -0
- package/deps/simdutf/src/simdutf/westmere/simd.h +379 -0
- package/deps/simdutf/src/simdutf/westmere/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/westmere/simd32-inl.h +151 -0
- package/deps/simdutf/src/simdutf/westmere/simd64-inl.h +33 -0
- package/deps/simdutf/src/simdutf/westmere.h +59 -0
- package/deps/simdutf/src/simdutf.cpp +152 -0
- package/deps/simdutf/src/simdutf_c.cpp +525 -0
- package/deps/simdutf/src/tables/utf16_to_utf8_tables.h +768 -0
- package/deps/simdutf/src/tables/utf32_to_utf16_tables.h +53 -0
- package/deps/simdutf/src/tables/utf8_to_utf16_tables.h +826 -0
- package/deps/simdutf/src/westmere/implementation.cpp +1479 -0
- package/deps/simdutf/src/westmere/internal/loader.cpp +7 -0
- package/deps/simdutf/src/westmere/internal/write_v_u16_11bits_to_utf8.cpp +66 -0
- package/deps/simdutf/src/westmere/sse_base64.cpp +672 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf16.cpp +21 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf32.cpp +31 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf8.cpp +71 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_latin1.cpp +70 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf32.cpp +206 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf8.cpp +504 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_latin1.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf16.cpp +209 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_latin1.cpp +58 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf16.cpp +197 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf32.cpp +141 -0
- package/deps/simdutf/src/westmere/sse_utf16fix.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_validate_utf16.cpp +17 -0
- package/deps/simdutf/tests/CMakeLists.txt +483 -0
- package/deps/simdutf/tests/atomic_base64_tests.cpp +2845 -0
- package/deps/simdutf/tests/base64_tests.cpp +3617 -0
- package/deps/simdutf/tests/basic_fuzzer.cpp +805 -0
- package/deps/simdutf/tests/bele_tests.cpp +182 -0
- package/deps/simdutf/tests/constexpr_base64_tests.cpp +387 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +52 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +80 -0
- package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +66 -0
- package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +120 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +203 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +276 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +136 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +193 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +381 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +259 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +266 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +176 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +213 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +318 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +343 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +271 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +111 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +96 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +192 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +166 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +215 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +181 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +261 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +516 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +579 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +412 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +480 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +671 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +455 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +1204 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +337 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +37 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +97 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +126 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +71 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +122 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +244 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +49 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +92 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +114 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +84 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +124 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +221 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +155 -0
- package/deps/simdutf/tests/count_utf16be.cpp +64 -0
- package/deps/simdutf/tests/count_utf16le.cpp +61 -0
- package/deps/simdutf/tests/count_utf8.cpp +87 -0
- package/deps/simdutf/tests/detect_encodings_tests.cpp +312 -0
- package/deps/simdutf/tests/embed/valid_utf8.txt +1 -0
- package/deps/simdutf/tests/embed_tests.cpp +22 -0
- package/deps/simdutf/tests/find_tests.cpp +77 -0
- package/deps/simdutf/tests/fixed_string_tests.cpp +153 -0
- package/deps/simdutf/tests/helpers/CMakeLists.txt +25 -0
- package/deps/simdutf/tests/helpers/compiletime_conversions.h +222 -0
- package/deps/simdutf/tests/helpers/fixed_string.h +267 -0
- package/deps/simdutf/tests/helpers/random_int.cpp +30 -0
- package/deps/simdutf/tests/helpers/random_int.h +39 -0
- package/deps/simdutf/tests/helpers/random_utf16.cpp +123 -0
- package/deps/simdutf/tests/helpers/random_utf16.h +52 -0
- package/deps/simdutf/tests/helpers/random_utf32.cpp +41 -0
- package/deps/simdutf/tests/helpers/random_utf32.h +40 -0
- package/deps/simdutf/tests/helpers/random_utf8.cpp +93 -0
- package/deps/simdutf/tests/helpers/random_utf8.h +36 -0
- package/deps/simdutf/tests/helpers/test.cpp +231 -0
- package/deps/simdutf/tests/helpers/test.h +193 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.cpp +1257 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.h +683 -0
- package/deps/simdutf/tests/helpers/utf16.h +27 -0
- package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +43 -0
- package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +47 -0
- package/deps/simdutf/tests/internal_tests.cpp +27 -0
- package/deps/simdutf/tests/null_safety_tests.cpp +94 -0
- package/deps/simdutf/tests/random_fuzzer.cpp +779 -0
- package/deps/simdutf/tests/readme_tests.cpp +274 -0
- package/deps/simdutf/tests/reference/CMakeLists.txt +23 -0
- package/deps/simdutf/tests/reference/decode_utf16.h +81 -0
- package/deps/simdutf/tests/reference/decode_utf32.h +47 -0
- package/deps/simdutf/tests/reference/encode_latin1.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_latin1.h +32 -0
- package/deps/simdutf/tests/reference/encode_utf16.cpp +49 -0
- package/deps/simdutf/tests/reference/encode_utf16.h +20 -0
- package/deps/simdutf/tests/reference/encode_utf32.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf32.h +36 -0
- package/deps/simdutf/tests/reference/encode_utf8.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf8.h +40 -0
- package/deps/simdutf/tests/reference/validate_utf16.cpp +60 -0
- package/deps/simdutf/tests/reference/validate_utf16.h +14 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +35 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +13 -0
- package/deps/simdutf/tests/reference/validate_utf32.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf8.cpp +82 -0
- package/deps/simdutf/tests/reference/validate_utf8.h +11 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +43 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +12 -0
- package/deps/simdutf/tests/select_implementation.cpp +43 -0
- package/deps/simdutf/tests/simdutf_c_tests.cpp +244 -0
- package/deps/simdutf/tests/span_tests.cpp +401 -0
- package/deps/simdutf/tests/special_tests.cpp +559 -0
- package/deps/simdutf/tests/straight_c_test.c +187 -0
- package/deps/simdutf/tests/text_encoding_tests.cpp +77 -0
- package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +377 -0
- package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +202 -0
- package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +165 -0
- package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +77 -0
- package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +175 -0
- package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +188 -0
- package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +268 -0
- package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +274 -0
- package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +92 -0
- package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +114 -0
- package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +178 -0
- package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +88 -0
- package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +33 -0
- package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +228 -0
- package/deps/simdutf/tools/CMakeLists.txt +85 -0
- package/deps/simdutf/tools/fastbase64.cpp +250 -0
- package/deps/simdutf/tools/sutf.cpp +556 -0
- package/deps/simdutf/tools/sutf.h +40 -0
- package/lib/commonjs/blake3.js +2 -1
- package/lib/commonjs/blake3.js.map +1 -1
- package/lib/commonjs/diffie-hellman.js +5 -4
- package/lib/commonjs/diffie-hellman.js.map +1 -1
- package/lib/commonjs/ecdh.js +5 -4
- package/lib/commonjs/ecdh.js.map +1 -1
- package/lib/module/blake3.js +2 -1
- package/lib/module/blake3.js.map +1 -1
- package/lib/module/diffie-hellman.js +5 -4
- package/lib/module/diffie-hellman.js.map +1 -1
- package/lib/module/ecdh.js +5 -4
- package/lib/module/ecdh.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/blake3.d.ts.map +1 -1
- package/lib/typescript/diffie-hellman.d.ts.map +1 -1
- package/lib/typescript/ecdh.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/blake3.ts +2 -1
- package/src/diffie-hellman.ts +5 -7
- package/src/ecdh.ts +5 -8
|
@@ -0,0 +1,683 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <cstdint>
|
|
4
|
+
#include <vector>
|
|
5
|
+
#include <functional>
|
|
6
|
+
#include <cstdio>
|
|
7
|
+
#include "utf16.h"
|
|
8
|
+
#include "simdutf/encoding_types.h"
|
|
9
|
+
|
|
10
|
+
std::vector<std::vector<char16_t>>
|
|
11
|
+
all_utf16_combinations(simdutf::endianness byte_order);
|
|
12
|
+
|
|
13
|
+
namespace simdutf {
|
|
14
|
+
namespace tests {
|
|
15
|
+
namespace helpers {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* It would be nice to use a single helper for both UTF-8 => UTF-16LE
|
|
19
|
+
* and UTF-8 <= UTF-16LE, but the function signatures differ when you
|
|
20
|
+
* represent UTF8 with char8_t and UTF-16LE with char16_t.
|
|
21
|
+
*/
|
|
22
|
+
class transcode_test_base {
|
|
23
|
+
protected:
|
|
24
|
+
endianness utf16_endianness;
|
|
25
|
+
|
|
26
|
+
protected:
|
|
27
|
+
transcode_test_base() : utf16_endianness{endianness::LITTLE} {}
|
|
28
|
+
transcode_test_base(endianness utf16) : utf16_endianness{utf16} {}
|
|
29
|
+
|
|
30
|
+
void encode_utf8(uint32_t codepoint, std::vector<char> &target);
|
|
31
|
+
void encode_utf16(uint32_t codepoint, std::vector<char16_t> &target);
|
|
32
|
+
void encode_utf32(uint32_t codepoint, std::vector<char32_t> &target);
|
|
33
|
+
void encode_latin1(uint32_t codepoint, std::vector<char> &target);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* This class can be used to test Latin1 => UTF-8 transcoding.
|
|
38
|
+
*/
|
|
39
|
+
class transcode_latin1_to_utf8_test_base : transcode_test_base {
|
|
40
|
+
public:
|
|
41
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
42
|
+
|
|
43
|
+
std::vector<char> output_utf8; // what the procedure under test produced
|
|
44
|
+
std::vector<char> reference_output_utf8; // what we are expecting
|
|
45
|
+
|
|
46
|
+
std::vector<char>
|
|
47
|
+
input_latin1; // source-encoded message: what we're going to transcode
|
|
48
|
+
|
|
49
|
+
static constexpr size_t output_size_margin =
|
|
50
|
+
0; // extra room for buggy procedures
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
transcode_latin1_to_utf8_test_base(GenerateCodepoint generate,
|
|
54
|
+
size_t input_size);
|
|
55
|
+
|
|
56
|
+
template <typename COLLECTION>
|
|
57
|
+
transcode_latin1_to_utf8_test_base(COLLECTION &&collection) {
|
|
58
|
+
for (const uint32_t codepoint : collection) {
|
|
59
|
+
prepare_input(codepoint);
|
|
60
|
+
}
|
|
61
|
+
output_utf8.resize(reference_output_utf8.size() + output_size_margin);
|
|
62
|
+
output_utf8.shrink_to_fit(); // to help detect overruns.
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
66
|
+
const size_t saved_chars =
|
|
67
|
+
procedure(input_latin1.data(), input_latin1.size(), output_utf8.data());
|
|
68
|
+
return validate(saved_chars);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
72
|
+
size_t saved_chars = procedure(input_latin1.data(), input_latin1.size());
|
|
73
|
+
if (saved_chars != reference_output_utf8.size()) {
|
|
74
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
75
|
+
"be %zu\n",
|
|
76
|
+
size_t(saved_chars), size_t(reference_output_utf8.size()));
|
|
77
|
+
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
private:
|
|
84
|
+
void prepare_input(uint32_t codepoint);
|
|
85
|
+
bool validate(size_t procedure_result) const;
|
|
86
|
+
bool is_input_valid() const;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* This class can be used to test Latin1 => UTF-16LE transcoding.
|
|
91
|
+
*/
|
|
92
|
+
class transcode_latin1_to_utf16_test_base : transcode_test_base {
|
|
93
|
+
public:
|
|
94
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
95
|
+
|
|
96
|
+
std::vector<char> input_latin1;
|
|
97
|
+
std::vector<char16_t> output_utf16;
|
|
98
|
+
std::vector<char16_t> reference_output_utf16;
|
|
99
|
+
|
|
100
|
+
static constexpr size_t output_size_margin =
|
|
101
|
+
0; // extra room for buggy procedures
|
|
102
|
+
|
|
103
|
+
public:
|
|
104
|
+
transcode_latin1_to_utf16_test_base(endianness utf16_endianness,
|
|
105
|
+
GenerateCodepoint generate,
|
|
106
|
+
size_t input_size);
|
|
107
|
+
|
|
108
|
+
template <typename COLLECTION>
|
|
109
|
+
transcode_latin1_to_utf16_test_base(endianness utf16_endianness,
|
|
110
|
+
COLLECTION &&collection)
|
|
111
|
+
: transcode_test_base{utf16_endianness} {
|
|
112
|
+
for (const uint32_t codepoint : collection) {
|
|
113
|
+
prepare_input(codepoint);
|
|
114
|
+
}
|
|
115
|
+
output_utf16.resize(reference_output_utf16.size() + output_size_margin);
|
|
116
|
+
output_utf16.shrink_to_fit(); // to help detect overruns.
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
120
|
+
size_t saved_chars = procedure(input_latin1.data(), input_latin1.size(),
|
|
121
|
+
output_utf16.data());
|
|
122
|
+
return validate(saved_chars);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
126
|
+
size_t saved_chars = procedure(input_latin1.data(), input_latin1.size());
|
|
127
|
+
if (saved_chars != reference_output_utf16.size()) {
|
|
128
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
129
|
+
"be %zu\n",
|
|
130
|
+
size_t(saved_chars), size_t(reference_output_utf16.size()));
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
private:
|
|
137
|
+
void prepare_input(uint32_t codepoint);
|
|
138
|
+
bool validate(size_t procedure_result) const;
|
|
139
|
+
bool is_input_valid() const;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* This class can be used to test UTF-16LE => UTF-32 transcoding.
|
|
144
|
+
*/
|
|
145
|
+
class transcode_utf16_to_latin1_test_base : transcode_test_base {
|
|
146
|
+
public:
|
|
147
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
148
|
+
|
|
149
|
+
std::vector<char> output_latin1; // what the procedure under test produced
|
|
150
|
+
std::vector<char> reference_output_latin1; // what we are expecting
|
|
151
|
+
|
|
152
|
+
std::vector<char16_t>
|
|
153
|
+
input_utf16; // source-encoded message: what we're going to transcode
|
|
154
|
+
|
|
155
|
+
static constexpr size_t output_size_margin =
|
|
156
|
+
16; // extra room for buggy procedures
|
|
157
|
+
|
|
158
|
+
public:
|
|
159
|
+
transcode_utf16_to_latin1_test_base(endianness utf16_endianness,
|
|
160
|
+
GenerateCodepoint generate,
|
|
161
|
+
size_t input_size);
|
|
162
|
+
|
|
163
|
+
transcode_utf16_to_latin1_test_base(endianness utf16_endianness,
|
|
164
|
+
const std::vector<char16_t> &input_utf16);
|
|
165
|
+
|
|
166
|
+
template <typename COLLECTION>
|
|
167
|
+
transcode_utf16_to_latin1_test_base(endianness utf16_endianness,
|
|
168
|
+
COLLECTION &&collection)
|
|
169
|
+
: transcode_test_base{utf16_endianness} {
|
|
170
|
+
for (const uint32_t codepoint : collection) {
|
|
171
|
+
prepare_input(codepoint);
|
|
172
|
+
}
|
|
173
|
+
output_latin1.resize(reference_output_latin1.size() + output_size_margin);
|
|
174
|
+
output_latin1.shrink_to_fit(); // to help detect overruns.
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
178
|
+
size_t saved_chars =
|
|
179
|
+
procedure(input_utf16.data(), input_utf16.size(), output_latin1.data());
|
|
180
|
+
return validate(saved_chars);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
184
|
+
size_t saved_chars = procedure(input_utf16.data(), input_utf16.size());
|
|
185
|
+
if (saved_chars != reference_output_latin1.size()) {
|
|
186
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
187
|
+
"be %zu\n",
|
|
188
|
+
size_t(saved_chars), size_t(reference_output_latin1.size()));
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
private:
|
|
195
|
+
void prepare_input(uint32_t codepoint);
|
|
196
|
+
bool validate(size_t procedure_result) const;
|
|
197
|
+
bool is_input_valid() const;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* This class can be used to test Latin1 => UTF-32 transcoding.
|
|
202
|
+
*/
|
|
203
|
+
class transcode_latin1_to_utf32_test_base : transcode_test_base {
|
|
204
|
+
public:
|
|
205
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
206
|
+
|
|
207
|
+
std::vector<char32_t> output_utf32; // what the procedure under test produced
|
|
208
|
+
std::vector<char32_t> reference_output_utf32; // what we are expecting
|
|
209
|
+
|
|
210
|
+
std::vector<char>
|
|
211
|
+
input_latin1; // source-encoded message: what we're going to transcode
|
|
212
|
+
|
|
213
|
+
static constexpr size_t output_size_margin =
|
|
214
|
+
0; // extra room for buggy procedures
|
|
215
|
+
|
|
216
|
+
public:
|
|
217
|
+
transcode_latin1_to_utf32_test_base(GenerateCodepoint generate,
|
|
218
|
+
size_t input_size); // constructor
|
|
219
|
+
|
|
220
|
+
template <typename COLLECTION>
|
|
221
|
+
transcode_latin1_to_utf32_test_base(COLLECTION &&collection) {
|
|
222
|
+
for (const uint32_t codepoint : collection) {
|
|
223
|
+
prepare_input(codepoint);
|
|
224
|
+
}
|
|
225
|
+
output_utf32.resize(reference_output_utf32.size() + output_size_margin);
|
|
226
|
+
output_utf32.shrink_to_fit(); // to help detect overruns.
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
230
|
+
size_t saved_chars = procedure(input_latin1.data(), input_latin1.size(),
|
|
231
|
+
output_utf32.data());
|
|
232
|
+
return validate(saved_chars);
|
|
233
|
+
}
|
|
234
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
235
|
+
size_t saved_chars = procedure(input_latin1.data(), input_latin1.size());
|
|
236
|
+
if (saved_chars != reference_output_utf32.size()) {
|
|
237
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
238
|
+
"be %zu\n",
|
|
239
|
+
size_t(saved_chars), size_t(reference_output_utf32.size()));
|
|
240
|
+
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
private:
|
|
247
|
+
void prepare_input(uint32_t codepoint);
|
|
248
|
+
bool validate(size_t procedure_result) const;
|
|
249
|
+
bool is_input_valid() const;
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* This class can be used to test UTF-8 => Latin1 transcoding.
|
|
254
|
+
*/
|
|
255
|
+
class transcode_utf8_to_latin1_test_base : transcode_test_base {
|
|
256
|
+
public:
|
|
257
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
258
|
+
|
|
259
|
+
std::vector<char> output_latin1; // what the procedure under test produced
|
|
260
|
+
std::vector<char> reference_output_latin1; // what we are expecting
|
|
261
|
+
|
|
262
|
+
std::vector<char>
|
|
263
|
+
input_utf8; // source-encoded message: what we're going to transcode
|
|
264
|
+
|
|
265
|
+
static constexpr size_t output_size_margin =
|
|
266
|
+
0; // extra room for buggy procedures
|
|
267
|
+
|
|
268
|
+
public:
|
|
269
|
+
transcode_utf8_to_latin1_test_base(GenerateCodepoint generate,
|
|
270
|
+
size_t input_size); // constructor
|
|
271
|
+
|
|
272
|
+
template <typename COLLECTION>
|
|
273
|
+
transcode_utf8_to_latin1_test_base(COLLECTION &&collection) {
|
|
274
|
+
for (const uint32_t codepoint : collection) {
|
|
275
|
+
prepare_input(codepoint);
|
|
276
|
+
}
|
|
277
|
+
output_latin1.resize(reference_output_latin1.size() + output_size_margin);
|
|
278
|
+
output_latin1.shrink_to_fit(); // to help detect overruns.
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
282
|
+
size_t saved_chars =
|
|
283
|
+
procedure(input_utf8.data(), input_utf8.size(), output_latin1.data());
|
|
284
|
+
return validate(saved_chars);
|
|
285
|
+
}
|
|
286
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
287
|
+
size_t saved_chars = procedure(input_utf8.data(), input_utf8.size());
|
|
288
|
+
if (saved_chars != reference_output_latin1.size()) {
|
|
289
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
290
|
+
"be %zu\n",
|
|
291
|
+
size_t(saved_chars), size_t(reference_output_latin1.size()));
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
private:
|
|
298
|
+
void prepare_input(uint32_t codepoint);
|
|
299
|
+
bool validate(size_t procedure_result) const;
|
|
300
|
+
bool is_input_valid() const;
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* This class can be used to test UTF-8 => UTF-16LE transcoding.
|
|
305
|
+
*/
|
|
306
|
+
class transcode_utf8_to_utf16_test_base : transcode_test_base {
|
|
307
|
+
public:
|
|
308
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
309
|
+
|
|
310
|
+
std::vector<char>
|
|
311
|
+
input_utf8; // source-encoded message: what we're going to transcode
|
|
312
|
+
std::vector<char16_t> output_utf16; // what the procedure under test produced
|
|
313
|
+
std::vector<char16_t> reference_output_utf16; // what we are expecting
|
|
314
|
+
|
|
315
|
+
static constexpr size_t output_size_margin =
|
|
316
|
+
0; // extra room for buggy procedures
|
|
317
|
+
|
|
318
|
+
public:
|
|
319
|
+
transcode_utf8_to_utf16_test_base(endianness utf16_endianness,
|
|
320
|
+
GenerateCodepoint generate,
|
|
321
|
+
size_t input_size);
|
|
322
|
+
|
|
323
|
+
template <typename COLLECTION>
|
|
324
|
+
transcode_utf8_to_utf16_test_base(endianness utf16_endianness,
|
|
325
|
+
COLLECTION &&collection)
|
|
326
|
+
: transcode_test_base{utf16_endianness} {
|
|
327
|
+
for (const uint32_t codepoint : collection) {
|
|
328
|
+
prepare_input(codepoint);
|
|
329
|
+
}
|
|
330
|
+
output_utf16.resize(reference_output_utf16.size() + output_size_margin);
|
|
331
|
+
output_utf16.shrink_to_fit(); // to help detect overruns.
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
335
|
+
size_t saved_chars =
|
|
336
|
+
procedure(input_utf8.data(), input_utf8.size(), output_utf16.data());
|
|
337
|
+
return validate(saved_chars);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
341
|
+
size_t saved_chars = procedure(input_utf8.data(), input_utf8.size());
|
|
342
|
+
if (saved_chars != reference_output_utf16.size()) {
|
|
343
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
344
|
+
"be %zu\n",
|
|
345
|
+
size_t(saved_chars), size_t(reference_output_utf16.size()));
|
|
346
|
+
return false;
|
|
347
|
+
}
|
|
348
|
+
return true;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
private:
|
|
352
|
+
void prepare_input(uint32_t codepoint);
|
|
353
|
+
bool validate(size_t procedure_result) const;
|
|
354
|
+
bool is_input_valid() const;
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* This class can be used to test UTF-8 => UTF-32 transcoding.
|
|
359
|
+
*/
|
|
360
|
+
class transcode_utf8_to_utf32_test_base : transcode_test_base {
|
|
361
|
+
public:
|
|
362
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
363
|
+
|
|
364
|
+
std::vector<char>
|
|
365
|
+
input_utf8; // source-encoded message: what we're going to transcode
|
|
366
|
+
std::vector<char32_t> output_utf32; // what the procedure under test produced
|
|
367
|
+
std::vector<char32_t> reference_output_utf32; // what we are expecting
|
|
368
|
+
|
|
369
|
+
static constexpr size_t output_size_margin =
|
|
370
|
+
0; // extra room for buggy procedures
|
|
371
|
+
|
|
372
|
+
public:
|
|
373
|
+
transcode_utf8_to_utf32_test_base(GenerateCodepoint generate,
|
|
374
|
+
size_t input_size);
|
|
375
|
+
|
|
376
|
+
template <typename COLLECTION>
|
|
377
|
+
transcode_utf8_to_utf32_test_base(COLLECTION &&collection) {
|
|
378
|
+
for (const uint32_t codepoint : collection) {
|
|
379
|
+
prepare_input(codepoint);
|
|
380
|
+
}
|
|
381
|
+
output_utf32.resize(reference_output_utf32.size() + output_size_margin);
|
|
382
|
+
output_utf32.shrink_to_fit(); // to help detect overruns.
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
386
|
+
size_t saved_chars =
|
|
387
|
+
procedure(input_utf8.data(), input_utf8.size(), output_utf32.data());
|
|
388
|
+
return validate(saved_chars);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
392
|
+
size_t saved_chars = procedure(input_utf8.data(), input_utf8.size());
|
|
393
|
+
if (saved_chars != reference_output_utf32.size()) {
|
|
394
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
395
|
+
"be %zu\n",
|
|
396
|
+
size_t(saved_chars), size_t(reference_output_utf32.size()));
|
|
397
|
+
return false;
|
|
398
|
+
}
|
|
399
|
+
return true;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
private:
|
|
403
|
+
void prepare_input(uint32_t codepoint);
|
|
404
|
+
bool validate(size_t procedure_result) const;
|
|
405
|
+
bool is_input_valid() const;
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* This class can be used to test UTF-16LE => UTF-8 transcoding.
|
|
410
|
+
*/
|
|
411
|
+
class transcode_utf16_to_utf8_test_base : transcode_test_base {
|
|
412
|
+
public:
|
|
413
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
414
|
+
|
|
415
|
+
std::vector<char> output_utf8; // what the procedure under test produced
|
|
416
|
+
std::vector<char> reference_output_utf8; // what we are expecting
|
|
417
|
+
|
|
418
|
+
std::vector<char16_t>
|
|
419
|
+
input_utf16; // source-encoded message: what we're going to transcode
|
|
420
|
+
|
|
421
|
+
static constexpr size_t output_size_margin =
|
|
422
|
+
0; // extra room for buggy procedures
|
|
423
|
+
|
|
424
|
+
public:
|
|
425
|
+
transcode_utf16_to_utf8_test_base(endianness utf16_endianness,
|
|
426
|
+
GenerateCodepoint generate,
|
|
427
|
+
size_t input_size);
|
|
428
|
+
|
|
429
|
+
transcode_utf16_to_utf8_test_base(endianness utf16_endianness,
|
|
430
|
+
const std::vector<char16_t> &input_utf16);
|
|
431
|
+
|
|
432
|
+
template <typename COLLECTION>
|
|
433
|
+
transcode_utf16_to_utf8_test_base(endianness utf16_endianness,
|
|
434
|
+
COLLECTION &&collection)
|
|
435
|
+
: transcode_test_base{utf16_endianness} {
|
|
436
|
+
for (const uint32_t codepoint : collection) {
|
|
437
|
+
prepare_input(codepoint);
|
|
438
|
+
}
|
|
439
|
+
output_utf8.resize(reference_output_utf8.size() + output_size_margin);
|
|
440
|
+
output_utf8.shrink_to_fit(); // to help detect overruns.
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
444
|
+
size_t saved_chars =
|
|
445
|
+
procedure(input_utf16.data(), input_utf16.size(), output_utf8.data());
|
|
446
|
+
return validate(saved_chars);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
450
|
+
size_t saved_chars = procedure(input_utf16.data(), input_utf16.size());
|
|
451
|
+
if (saved_chars != reference_output_utf8.size()) {
|
|
452
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
453
|
+
"be %zu\n",
|
|
454
|
+
size_t(saved_chars), size_t(reference_output_utf8.size()));
|
|
455
|
+
return false;
|
|
456
|
+
}
|
|
457
|
+
return true;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
private:
|
|
461
|
+
void prepare_input(uint32_t codepoint);
|
|
462
|
+
bool validate(size_t procedure_result) const;
|
|
463
|
+
bool is_input_valid() const;
|
|
464
|
+
};
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* This class can be used to test UTF-32 => Latin1 transcoding.
|
|
468
|
+
*/
|
|
469
|
+
class transcode_utf32_to_latin1_test_base : transcode_test_base {
|
|
470
|
+
public:
|
|
471
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
472
|
+
|
|
473
|
+
std::vector<char> output_latin1; // what the procedure under test produced
|
|
474
|
+
std::vector<char> reference_output_latin1; // what we are expecting
|
|
475
|
+
|
|
476
|
+
std::vector<char32_t>
|
|
477
|
+
input_utf32; // source-encoded message: what we're going to transcode
|
|
478
|
+
|
|
479
|
+
static constexpr size_t output_size_margin =
|
|
480
|
+
0; // extra room for buggy procedures
|
|
481
|
+
|
|
482
|
+
public:
|
|
483
|
+
transcode_utf32_to_latin1_test_base(GenerateCodepoint generate,
|
|
484
|
+
size_t input_size); // constructor
|
|
485
|
+
|
|
486
|
+
template <typename COLLECTION>
|
|
487
|
+
transcode_utf32_to_latin1_test_base(COLLECTION &&collection) {
|
|
488
|
+
for (const uint32_t codepoint : collection) {
|
|
489
|
+
prepare_input(codepoint);
|
|
490
|
+
}
|
|
491
|
+
output_latin1.resize(reference_output_latin1.size() + output_size_margin);
|
|
492
|
+
output_latin1.shrink_to_fit(); // to help detect overruns.
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
496
|
+
size_t saved_chars =
|
|
497
|
+
procedure(input_utf32.data(), input_utf32.size(), output_latin1.data());
|
|
498
|
+
return validate(saved_chars);
|
|
499
|
+
}
|
|
500
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
501
|
+
size_t saved_chars = procedure(input_utf32.data(), input_utf32.size());
|
|
502
|
+
if (saved_chars != reference_output_latin1.size()) {
|
|
503
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
504
|
+
"be %zu\n",
|
|
505
|
+
size_t(saved_chars), size_t(reference_output_latin1.size()));
|
|
506
|
+
return false;
|
|
507
|
+
}
|
|
508
|
+
return true;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
private:
|
|
512
|
+
void prepare_input(uint32_t codepoint);
|
|
513
|
+
bool validate(size_t procedure_result) const;
|
|
514
|
+
bool is_input_valid() const;
|
|
515
|
+
};
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* This class can be used to test UTF-32 => UTF-8 transcoding.
|
|
519
|
+
*/
|
|
520
|
+
class transcode_utf32_to_utf8_test_base : transcode_test_base {
|
|
521
|
+
public:
|
|
522
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
523
|
+
|
|
524
|
+
std::vector<char> output_utf8; // what the procedure under test produced
|
|
525
|
+
std::vector<char> reference_output_utf8; // what we are expecting
|
|
526
|
+
|
|
527
|
+
std::vector<char32_t>
|
|
528
|
+
input_utf32; // source-encoded message: what we're going to transcode
|
|
529
|
+
|
|
530
|
+
static constexpr size_t output_size_margin =
|
|
531
|
+
0; // extra room for buggy procedures
|
|
532
|
+
|
|
533
|
+
public:
|
|
534
|
+
transcode_utf32_to_utf8_test_base(GenerateCodepoint generate,
|
|
535
|
+
size_t input_size);
|
|
536
|
+
|
|
537
|
+
transcode_utf32_to_utf8_test_base(const std::vector<char32_t> &input_utf32);
|
|
538
|
+
|
|
539
|
+
template <typename COLLECTION>
|
|
540
|
+
transcode_utf32_to_utf8_test_base(COLLECTION &&collection) {
|
|
541
|
+
for (const uint32_t codepoint : collection) {
|
|
542
|
+
prepare_input(codepoint);
|
|
543
|
+
}
|
|
544
|
+
output_utf8.resize(reference_output_utf8.size() + output_size_margin);
|
|
545
|
+
output_utf8.shrink_to_fit(); // to help detect overruns.
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
549
|
+
size_t saved_chars =
|
|
550
|
+
procedure(input_utf32.data(), input_utf32.size(), output_utf8.data());
|
|
551
|
+
return validate(saved_chars);
|
|
552
|
+
}
|
|
553
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
554
|
+
size_t saved_chars = procedure(input_utf32.data(), input_utf32.size());
|
|
555
|
+
if (saved_chars != reference_output_utf8.size()) {
|
|
556
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
557
|
+
"be %zu\n",
|
|
558
|
+
size_t(saved_chars), size_t(reference_output_utf8.size()));
|
|
559
|
+
return false;
|
|
560
|
+
}
|
|
561
|
+
return true;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
private:
|
|
565
|
+
void prepare_input(uint32_t codepoint);
|
|
566
|
+
bool validate(size_t procedure_result) const;
|
|
567
|
+
bool is_input_valid() const;
|
|
568
|
+
};
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* This class can be used to test UTF-32 => UTF-16LE transcoding.
|
|
572
|
+
*/
|
|
573
|
+
class transcode_utf32_to_utf16_test_base : transcode_test_base {
|
|
574
|
+
public:
|
|
575
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
576
|
+
|
|
577
|
+
std::vector<char16_t> output_utf16; // what the procedure under test produced
|
|
578
|
+
std::vector<char16_t> reference_output_utf16; // what we are expecting
|
|
579
|
+
|
|
580
|
+
std::vector<char32_t>
|
|
581
|
+
input_utf32; // source-encoded message: what we're going to transcode
|
|
582
|
+
|
|
583
|
+
static constexpr size_t output_size_margin =
|
|
584
|
+
0; // extra room for buggy procedures
|
|
585
|
+
|
|
586
|
+
public:
|
|
587
|
+
transcode_utf32_to_utf16_test_base(endianness utf16_endianness,
|
|
588
|
+
GenerateCodepoint generate,
|
|
589
|
+
size_t input_size);
|
|
590
|
+
|
|
591
|
+
template <typename COLLECTION>
|
|
592
|
+
transcode_utf32_to_utf16_test_base(endianness utf16_endianness,
|
|
593
|
+
COLLECTION &&collection)
|
|
594
|
+
: transcode_test_base{utf16_endianness} {
|
|
595
|
+
for (const uint32_t codepoint : collection) {
|
|
596
|
+
prepare_input(codepoint);
|
|
597
|
+
}
|
|
598
|
+
output_utf16.resize(reference_output_utf16.size() + output_size_margin);
|
|
599
|
+
output_utf16.shrink_to_fit(); // to help detect overruns.
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
603
|
+
size_t saved_chars =
|
|
604
|
+
procedure(input_utf32.data(), input_utf32.size(), output_utf16.data());
|
|
605
|
+
return validate(saved_chars);
|
|
606
|
+
}
|
|
607
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
608
|
+
size_t saved_chars = procedure(input_utf32.data(), input_utf32.size());
|
|
609
|
+
if (saved_chars != reference_output_utf16.size()) {
|
|
610
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
611
|
+
"be %zu\n",
|
|
612
|
+
size_t(saved_chars), size_t(reference_output_utf16.size()));
|
|
613
|
+
return false;
|
|
614
|
+
}
|
|
615
|
+
return true;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
private:
|
|
619
|
+
void prepare_input(uint32_t codepoint);
|
|
620
|
+
bool validate(size_t procedure_result) const;
|
|
621
|
+
bool is_input_valid() const;
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* This class can be used to test UTF-16LE => UTF-32 transcoding.
|
|
626
|
+
*/
|
|
627
|
+
class transcode_utf16_to_utf32_test_base : transcode_test_base {
|
|
628
|
+
public:
|
|
629
|
+
using GenerateCodepoint = std::function<uint32_t()>;
|
|
630
|
+
|
|
631
|
+
std::vector<char32_t> output_utf32; // what the procedure under test produced
|
|
632
|
+
std::vector<char32_t> reference_output_utf32; // what we are expecting
|
|
633
|
+
|
|
634
|
+
std::vector<char16_t>
|
|
635
|
+
input_utf16; // source-encoded message: what we're going to transcode
|
|
636
|
+
|
|
637
|
+
static constexpr size_t output_size_margin =
|
|
638
|
+
16; // extra room for buggy procedures
|
|
639
|
+
|
|
640
|
+
public:
|
|
641
|
+
transcode_utf16_to_utf32_test_base(endianness utf16_endianness,
|
|
642
|
+
GenerateCodepoint generate,
|
|
643
|
+
size_t input_size);
|
|
644
|
+
|
|
645
|
+
transcode_utf16_to_utf32_test_base(endianness utf16_endianness,
|
|
646
|
+
const std::vector<char16_t> &input_utf16);
|
|
647
|
+
|
|
648
|
+
template <typename COLLECTION>
|
|
649
|
+
transcode_utf16_to_utf32_test_base(endianness utf16_endianness,
|
|
650
|
+
COLLECTION &&collection)
|
|
651
|
+
: transcode_test_base{utf16_endianness} {
|
|
652
|
+
for (const uint32_t codepoint : collection) {
|
|
653
|
+
prepare_input(codepoint);
|
|
654
|
+
}
|
|
655
|
+
output_utf32.resize(reference_output_utf32.size() + output_size_margin);
|
|
656
|
+
output_utf32.shrink_to_fit(); // to help detect overruns.
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
template <typename PROCEDURE> bool operator()(PROCEDURE procedure) {
|
|
660
|
+
size_t saved_chars =
|
|
661
|
+
procedure(input_utf16.data(), input_utf16.size(), output_utf32.data());
|
|
662
|
+
return validate(saved_chars);
|
|
663
|
+
}
|
|
664
|
+
template <typename PROCEDURE> bool check_size(PROCEDURE procedure) {
|
|
665
|
+
size_t saved_chars = procedure(input_utf16.data(), input_utf16.size());
|
|
666
|
+
if (saved_chars != reference_output_utf32.size()) {
|
|
667
|
+
printf("wrong saved bytes value: procedure returned %zu bytes, it should "
|
|
668
|
+
"be %zu\n",
|
|
669
|
+
size_t(saved_chars), size_t(reference_output_utf32.size()));
|
|
670
|
+
return false;
|
|
671
|
+
}
|
|
672
|
+
return true;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
private:
|
|
676
|
+
void prepare_input(uint32_t codepoint);
|
|
677
|
+
bool validate(size_t procedure_result) const;
|
|
678
|
+
bool is_input_valid() const;
|
|
679
|
+
};
|
|
680
|
+
|
|
681
|
+
} // namespace helpers
|
|
682
|
+
} // namespace tests
|
|
683
|
+
} // namespace simdutf
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "simdutf/encoding_types.h"
|
|
4
|
+
|
|
5
|
+
template <typename = void>
|
|
6
|
+
char16_t to_utf16(simdutf::endianness byte_order, char16_t chr) {
|
|
7
|
+
if (!match_system(byte_order)) {
|
|
8
|
+
return char16_t((uint16_t(chr) << 8) | (uint16_t(chr) >> 8));
|
|
9
|
+
} else {
|
|
10
|
+
return chr;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
template <typename = void> char16_t to_utf16be(char16_t chr) {
|
|
15
|
+
return to_utf16(simdutf::endianness::BIG, chr);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
template <typename = void> char16_t to_utf16le(char16_t chr) {
|
|
19
|
+
return to_utf16(simdutf::endianness::LITTLE, chr);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
template <typename = void>
|
|
23
|
+
void to_utf16le_inplace(char16_t *data, size_t size) {
|
|
24
|
+
for (size_t i = 0; i < size; i++) {
|
|
25
|
+
data[i] = to_utf16le(data[i]);
|
|
26
|
+
}
|
|
27
|
+
}
|