data-structure-typed 2.4.1 → 2.4.3
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/CHANGELOG.md +1 -1
- package/dist/cjs/index.cjs +36 -9
- package/dist/cjs-legacy/index.cjs +36 -9
- package/dist/esm/index.mjs +36 -9
- package/dist/esm-legacy/index.mjs +36 -9
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +10 -0
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +10 -0
- package/dist/umd/data-structure-typed.js +36 -8
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/package.json +7 -5
- package/src/data-structures/binary-tree/tree-map.ts +16 -0
- package/src/data-structures/binary-tree/tree-set.ts +16 -0
- package/src/data-structures/trie/trie.ts +6 -8
- package/CMakeLists.txt +0 -52
- package/benchmark/report.html +0 -221
- package/benchmark/report.json +0 -1972
- package/build/CMakeCache.txt +0 -603
- package/build/CMakeFiles/4.0.3/CMakeCXXCompiler.cmake +0 -104
- package/build/CMakeFiles/4.0.3/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/build/CMakeFiles/4.0.3/CMakeSystem.cmake +0 -15
- package/build/CMakeFiles/4.0.3/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -920
- package/build/CMakeFiles/4.0.3/CompilerIdCXX/a.out +0 -0
- package/build/CMakeFiles/4.0.3/CompilerIdCXX/apple-sdk.cpp +0 -1
- package/build/CMakeFiles/CMakeConfigureLog.yaml +0 -2146
- package/build/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
- package/build/CMakeFiles/InstallScripts.json +0 -9
- package/build/CMakeFiles/Makefile.cmake +0 -100
- package/build/CMakeFiles/Makefile2 +0 -720
- package/build/CMakeFiles/TargetDirectories.txt +0 -23
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.internal +0 -839
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.make +0 -2506
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp.o +0 -0
- package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp.o.d +0 -835
- package/build/CMakeFiles/avl-tree-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/avl-tree-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/avl-tree-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.internal +0 -839
- package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.make +0 -2506
- package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/avl-tree-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/avl-tree-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/avl-tree-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/avl-tree-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/avl-tree-benchmark.dir/test/performance/data-structures/binary-tree/avl-tree.test.cpp.o +0 -0
- package/build/CMakeFiles/avl-tree-benchmark.dir/test/performance/data-structures/binary-tree/avl-tree.test.cpp.o.d +0 -835
- package/build/CMakeFiles/cmake.check_cache +0 -1
- package/build/CMakeFiles/deque-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/deque-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/deque-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.internal +0 -791
- package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.make +0 -2362
- package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/deque-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/deque-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/deque-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/deque-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/deque-benchmark.dir/test/performance/data-structures/queue/deque.test.cpp.o +0 -0
- package/build/CMakeFiles/deque-benchmark.dir/test/performance/data-structures/queue/deque.test.cpp.o.d +0 -787
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.internal +0 -790
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.make +0 -2359
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp.o +0 -0
- package/build/CMakeFiles/doubly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp.o.d +0 -786
- package/build/CMakeFiles/hash-map-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/hash-map-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/hash-map-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.internal +0 -790
- package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.make +0 -2359
- package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/hash-map-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/hash-map-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/hash-map-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/hash-map-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/hash-map-benchmark.dir/test/performance/data-structures/hash/hash-map.test.cpp.o +0 -0
- package/build/CMakeFiles/hash-map-benchmark.dir/test/performance/data-structures/hash/hash-map.test.cpp.o.d +0 -786
- package/build/CMakeFiles/heap-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/heap-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/heap-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.internal +0 -843
- package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.make +0 -2518
- package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/heap-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/heap-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/heap-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/heap-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/heap-benchmark.dir/test/performance/data-structures/heap/heap.test.cpp.o +0 -0
- package/build/CMakeFiles/heap-benchmark.dir/test/performance/data-structures/heap/heap.test.cpp.o.d +0 -839
- package/build/CMakeFiles/priority-queue-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/priority-queue-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/priority-queue-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.internal +0 -793
- package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.make +0 -2368
- package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/priority-queue-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/priority-queue-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/priority-queue-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/priority-queue-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/priority-queue-benchmark.dir/test/performance/data-structures/priority-queue/priority-queue.test.cpp.o +0 -0
- package/build/CMakeFiles/priority-queue-benchmark.dir/test/performance/data-structures/priority-queue/priority-queue.test.cpp.o.d +0 -789
- package/build/CMakeFiles/progress.marks +0 -1
- package/build/CMakeFiles/queue-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/queue-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/queue-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.internal +0 -793
- package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.make +0 -2368
- package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/queue-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/queue-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/queue-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/queue-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/queue-benchmark.dir/test/performance/data-structures/queue/queue.test.cpp.o +0 -0
- package/build/CMakeFiles/queue-benchmark.dir/test/performance/data-structures/queue/queue.test.cpp.o.d +0 -789
- package/build/CMakeFiles/red-black-tree-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/red-black-tree-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/red-black-tree-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.internal +0 -839
- package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.make +0 -2506
- package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/red-black-tree-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/red-black-tree-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/red-black-tree-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/red-black-tree-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/red-black-tree-benchmark.dir/test/performance/data-structures/binary-tree/red-black-tree.test.cpp.o +0 -0
- package/build/CMakeFiles/red-black-tree-benchmark.dir/test/performance/data-structures/binary-tree/red-black-tree.test.cpp.o.d +0 -835
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.internal +0 -790
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.make +0 -2359
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/singly-linked-list.test.cpp.o +0 -0
- package/build/CMakeFiles/singly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/singly-linked-list.test.cpp.o.d +0 -786
- package/build/CMakeFiles/stack-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/stack-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/stack-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.internal +0 -793
- package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.make +0 -2368
- package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/stack-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/stack-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/stack-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/stack-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/stack-benchmark.dir/test/performance/data-structures/stack/stack.test.cpp.o +0 -0
- package/build/CMakeFiles/stack-benchmark.dir/test/performance/data-structures/stack/stack.test.cpp.o.d +0 -789
- package/build/CMakeFiles/tree-map-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/tree-map-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/tree-map-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.internal +0 -839
- package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.make +0 -2506
- package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/tree-map-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/tree-map-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/tree-map-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/tree-map-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/tree-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-map.test.cpp.o +0 -0
- package/build/CMakeFiles/tree-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-map.test.cpp.o.d +0 -835
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.internal +0 -839
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.make +0 -2506
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp.o +0 -0
- package/build/CMakeFiles/tree-multi-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp.o.d +0 -835
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.internal +0 -839
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.make +0 -2506
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp.o +0 -0
- package/build/CMakeFiles/tree-multi-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp.o.d +0 -835
- package/build/CMakeFiles/tree-set-benchmark.dir/DependInfo.cmake +0 -23
- package/build/CMakeFiles/tree-set-benchmark.dir/build.make +0 -114
- package/build/CMakeFiles/tree-set-benchmark.dir/cmake_clean.cmake +0 -11
- package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.internal +0 -839
- package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.make +0 -2506
- package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.ts +0 -2
- package/build/CMakeFiles/tree-set-benchmark.dir/depend.make +0 -2
- package/build/CMakeFiles/tree-set-benchmark.dir/flags.make +0 -10
- package/build/CMakeFiles/tree-set-benchmark.dir/link.txt +0 -1
- package/build/CMakeFiles/tree-set-benchmark.dir/progress.make +0 -3
- package/build/CMakeFiles/tree-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-set.test.cpp.o +0 -0
- package/build/CMakeFiles/tree-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-set.test.cpp.o.d +0 -835
- package/build/Makefile +0 -783
- package/build/_deps/benchmark-build/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
- package/build/_deps/benchmark-build/CMakeFiles/progress.marks +0 -1
- package/build/_deps/benchmark-build/Makefile +0 -140
- package/build/_deps/benchmark-build/benchmark.pc +0 -12
- package/build/_deps/benchmark-build/benchmarkConfig.cmake +0 -14
- package/build/_deps/benchmark-build/benchmarkConfigVersion.cmake +0 -65
- package/build/_deps/benchmark-build/benchmarkTargets.cmake +0 -84
- package/build/_deps/benchmark-build/cmake_install.cmake +0 -50
- package/build/_deps/benchmark-build/src/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/DependInfo.cmake +0 -41
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark.cc.o.d +0 -875
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o.d +0 -802
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o.d +0 -772
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o.d +0 -841
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o.d +0 -833
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/build.make +0 -402
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/check.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/check.cc.o.d +0 -784
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/cmake_clean.cmake +0 -47
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/cmake_clean_target.cmake +0 -3
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/colorprint.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/colorprint.cc.o.d +0 -791
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o.d +0 -795
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.internal +0 -15519
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.make +0 -17500
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.ts +0 -2
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/complexity.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/complexity.cc.o.d +0 -793
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/console_reporter.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/console_reporter.cc.o.d +0 -802
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/counter.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/counter.cc.o.d +0 -773
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o.d +0 -799
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/depend.make +0 -2
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/flags.make +0 -10
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/json_reporter.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/json_reporter.cc.o.d +0 -800
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/link.txt +0 -2
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/perf_counters.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/perf_counters.cc.o.d +0 -807
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/progress.make +0 -21
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/reporter.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/reporter.cc.o.d +0 -798
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/statistics.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/statistics.cc.o.d +0 -800
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/string_util.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/string_util.cc.o.d +0 -795
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/sysinfo.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/sysinfo.cc.o.d +0 -933
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/timers.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/timers.cc.o.d +0 -904
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/DependInfo.cmake +0 -23
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o +0 -0
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o.d +0 -772
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/build.make +0 -114
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/cmake_clean.cmake +0 -11
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/cmake_clean_target.cmake +0 -3
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.internal +0 -776
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.make +0 -2317
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.ts +0 -2
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/depend.make +0 -2
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/flags.make +0 -10
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/link.txt +0 -2
- package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/progress.make +0 -3
- package/build/_deps/benchmark-build/src/CMakeFiles/progress.marks +0 -1
- package/build/_deps/benchmark-build/src/Makefile +0 -710
- package/build/_deps/benchmark-build/src/cmake_install.cmake +0 -45
- package/build/_deps/benchmark-build/src/libbenchmark.a +0 -0
- package/build/_deps/benchmark-build/src/libbenchmark_main.a +0 -0
- package/build/_deps/benchmark-src/.clang-format +0 -5
- package/build/_deps/benchmark-src/.clang-tidy +0 -7
- package/build/_deps/benchmark-src/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
- package/build/_deps/benchmark-src/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/build/_deps/benchmark-src/.github/install_bazel.sh +0 -13
- package/build/_deps/benchmark-src/.github/libcxx-setup.sh +0 -26
- package/build/_deps/benchmark-src/.github/workflows/bazel.yml +0 -35
- package/build/_deps/benchmark-src/.github/workflows/build-and-test-min-cmake.yml +0 -46
- package/build/_deps/benchmark-src/.github/workflows/build-and-test-perfcounters.yml +0 -51
- package/build/_deps/benchmark-src/.github/workflows/build-and-test.yml +0 -114
- package/build/_deps/benchmark-src/.github/workflows/clang-format-lint.yml +0 -17
- package/build/_deps/benchmark-src/.github/workflows/clang-tidy.yml +0 -38
- package/build/_deps/benchmark-src/.github/workflows/doxygen.yml +0 -28
- package/build/_deps/benchmark-src/.github/workflows/pylint.yml +0 -28
- package/build/_deps/benchmark-src/.github/workflows/sanitizer.yml +0 -96
- package/build/_deps/benchmark-src/.github/workflows/test_bindings.yml +0 -29
- package/build/_deps/benchmark-src/.github/workflows/wheels.yml +0 -79
- package/build/_deps/benchmark-src/.travis.yml +0 -208
- package/build/_deps/benchmark-src/.ycm_extra_conf.py +0 -115
- package/build/_deps/benchmark-src/AUTHORS +0 -71
- package/build/_deps/benchmark-src/BUILD.bazel +0 -87
- package/build/_deps/benchmark-src/CMakeLists.txt +0 -340
- package/build/_deps/benchmark-src/CONTRIBUTING.md +0 -58
- package/build/_deps/benchmark-src/CONTRIBUTORS +0 -95
- package/build/_deps/benchmark-src/LICENSE +0 -202
- package/build/_deps/benchmark-src/MODULE.bazel +0 -24
- package/build/_deps/benchmark-src/README.md +0 -223
- package/build/_deps/benchmark-src/WORKSPACE +0 -22
- package/build/_deps/benchmark-src/WORKSPACE.bzlmod +0 -2
- package/build/_deps/benchmark-src/_config.yml +0 -2
- package/build/_deps/benchmark-src/appveyor.yml +0 -50
- package/build/_deps/benchmark-src/bazel/benchmark_deps.bzl +0 -65
- package/build/_deps/benchmark-src/bindings/python/BUILD +0 -3
- package/build/_deps/benchmark-src/bindings/python/build_defs.bzl +0 -25
- package/build/_deps/benchmark-src/bindings/python/google_benchmark/BUILD +0 -40
- package/build/_deps/benchmark-src/bindings/python/google_benchmark/__init__.py +0 -162
- package/build/_deps/benchmark-src/bindings/python/google_benchmark/benchmark.cc +0 -184
- package/build/_deps/benchmark-src/bindings/python/google_benchmark/example.py +0 -136
- package/build/_deps/benchmark-src/bindings/python/nanobind.BUILD +0 -17
- package/build/_deps/benchmark-src/bindings/python/python_headers.BUILD +0 -6
- package/build/_deps/benchmark-src/cmake/AddCXXCompilerFlag.cmake +0 -78
- package/build/_deps/benchmark-src/cmake/CXXFeatureCheck.cmake +0 -82
- package/build/_deps/benchmark-src/cmake/Config.cmake.in +0 -7
- package/build/_deps/benchmark-src/cmake/GetGitVersion.cmake +0 -58
- package/build/_deps/benchmark-src/cmake/GoogleTest.cmake +0 -58
- package/build/_deps/benchmark-src/cmake/GoogleTest.cmake.in +0 -59
- package/build/_deps/benchmark-src/cmake/benchmark.pc.in +0 -12
- package/build/_deps/benchmark-src/cmake/gnu_posix_regex.cpp +0 -12
- package/build/_deps/benchmark-src/cmake/llvm-toolchain.cmake +0 -8
- package/build/_deps/benchmark-src/cmake/posix_regex.cpp +0 -14
- package/build/_deps/benchmark-src/cmake/pthread_affinity.cpp +0 -16
- package/build/_deps/benchmark-src/cmake/split_list.cmake +0 -3
- package/build/_deps/benchmark-src/cmake/std_regex.cpp +0 -10
- package/build/_deps/benchmark-src/cmake/steady_clock.cpp +0 -7
- package/build/_deps/benchmark-src/cmake/thread_safety_attributes.cpp +0 -4
- package/build/_deps/benchmark-src/docs/AssemblyTests.md +0 -149
- package/build/_deps/benchmark-src/docs/_config.yml +0 -3
- package/build/_deps/benchmark-src/docs/assets/images/icon.png +0 -0
- package/build/_deps/benchmark-src/docs/assets/images/icon.xcf +0 -0
- package/build/_deps/benchmark-src/docs/assets/images/icon_black.png +0 -0
- package/build/_deps/benchmark-src/docs/assets/images/icon_black.xcf +0 -0
- package/build/_deps/benchmark-src/docs/dependencies.md +0 -13
- package/build/_deps/benchmark-src/docs/index.md +0 -12
- package/build/_deps/benchmark-src/docs/perf_counters.md +0 -35
- package/build/_deps/benchmark-src/docs/platform_specific_build_instructions.md +0 -48
- package/build/_deps/benchmark-src/docs/python_bindings.md +0 -34
- package/build/_deps/benchmark-src/docs/random_interleaving.md +0 -13
- package/build/_deps/benchmark-src/docs/reducing_variance.md +0 -100
- package/build/_deps/benchmark-src/docs/releasing.md +0 -41
- package/build/_deps/benchmark-src/docs/tools.md +0 -343
- package/build/_deps/benchmark-src/docs/user_guide.md +0 -1266
- package/build/_deps/benchmark-src/include/benchmark/benchmark.h +0 -1991
- package/build/_deps/benchmark-src/include/benchmark/export.h +0 -47
- package/build/_deps/benchmark-src/pyproject.toml +0 -50
- package/build/_deps/benchmark-src/setup.py +0 -113
- package/build/_deps/benchmark-src/src/CMakeLists.txt +0 -170
- package/build/_deps/benchmark-src/src/arraysize.h +0 -33
- package/build/_deps/benchmark-src/src/benchmark.cc +0 -779
- package/build/_deps/benchmark-src/src/benchmark_api_internal.cc +0 -118
- package/build/_deps/benchmark-src/src/benchmark_api_internal.h +0 -87
- package/build/_deps/benchmark-src/src/benchmark_main.cc +0 -18
- package/build/_deps/benchmark-src/src/benchmark_name.cc +0 -59
- package/build/_deps/benchmark-src/src/benchmark_register.cc +0 -520
- package/build/_deps/benchmark-src/src/benchmark_register.h +0 -109
- package/build/_deps/benchmark-src/src/benchmark_runner.cc +0 -497
- package/build/_deps/benchmark-src/src/benchmark_runner.h +0 -131
- package/build/_deps/benchmark-src/src/check.cc +0 -11
- package/build/_deps/benchmark-src/src/check.h +0 -106
- package/build/_deps/benchmark-src/src/colorprint.cc +0 -200
- package/build/_deps/benchmark-src/src/colorprint.h +0 -33
- package/build/_deps/benchmark-src/src/commandlineflags.cc +0 -298
- package/build/_deps/benchmark-src/src/commandlineflags.h +0 -133
- package/build/_deps/benchmark-src/src/complexity.cc +0 -244
- package/build/_deps/benchmark-src/src/complexity.h +0 -55
- package/build/_deps/benchmark-src/src/console_reporter.cc +0 -206
- package/build/_deps/benchmark-src/src/counter.cc +0 -80
- package/build/_deps/benchmark-src/src/counter.h +0 -32
- package/build/_deps/benchmark-src/src/csv_reporter.cc +0 -161
- package/build/_deps/benchmark-src/src/cycleclock.h +0 -230
- package/build/_deps/benchmark-src/src/internal_macros.h +0 -115
- package/build/_deps/benchmark-src/src/json_reporter.cc +0 -320
- package/build/_deps/benchmark-src/src/log.h +0 -88
- package/build/_deps/benchmark-src/src/mutex.h +0 -155
- package/build/_deps/benchmark-src/src/perf_counters.cc +0 -282
- package/build/_deps/benchmark-src/src/perf_counters.h +0 -200
- package/build/_deps/benchmark-src/src/re.h +0 -158
- package/build/_deps/benchmark-src/src/reporter.cc +0 -118
- package/build/_deps/benchmark-src/src/statistics.cc +0 -209
- package/build/_deps/benchmark-src/src/statistics.h +0 -44
- package/build/_deps/benchmark-src/src/string_util.cc +0 -254
- package/build/_deps/benchmark-src/src/string_util.h +0 -70
- package/build/_deps/benchmark-src/src/sysinfo.cc +0 -855
- package/build/_deps/benchmark-src/src/thread_manager.h +0 -63
- package/build/_deps/benchmark-src/src/thread_timer.h +0 -86
- package/build/_deps/benchmark-src/src/timers.cc +0 -272
- package/build/_deps/benchmark-src/src/timers.h +0 -48
- package/build/_deps/benchmark-src/test/AssemblyTests.cmake +0 -67
- package/build/_deps/benchmark-src/test/BUILD +0 -127
- package/build/_deps/benchmark-src/test/CMakeLists.txt +0 -309
- package/build/_deps/benchmark-src/test/args_product_test.cc +0 -77
- package/build/_deps/benchmark-src/test/basic_test.cc +0 -180
- package/build/_deps/benchmark-src/test/benchmark_gtest.cc +0 -169
- package/build/_deps/benchmark-src/test/benchmark_min_time_flag_iters_test.cc +0 -66
- package/build/_deps/benchmark-src/test/benchmark_min_time_flag_time_test.cc +0 -90
- package/build/_deps/benchmark-src/test/benchmark_name_gtest.cc +0 -82
- package/build/_deps/benchmark-src/test/benchmark_random_interleaving_gtest.cc +0 -126
- package/build/_deps/benchmark-src/test/benchmark_setup_teardown_test.cc +0 -157
- package/build/_deps/benchmark-src/test/benchmark_test.cc +0 -274
- package/build/_deps/benchmark-src/test/clobber_memory_assembly_test.cc +0 -64
- package/build/_deps/benchmark-src/test/commandlineflags_gtest.cc +0 -228
- package/build/_deps/benchmark-src/test/complexity_test.cc +0 -228
- package/build/_deps/benchmark-src/test/cxx03_test.cc +0 -62
- package/build/_deps/benchmark-src/test/diagnostics_test.cc +0 -91
- package/build/_deps/benchmark-src/test/display_aggregates_only_test.cc +0 -45
- package/build/_deps/benchmark-src/test/donotoptimize_assembly_test.cc +0 -201
- package/build/_deps/benchmark-src/test/donotoptimize_test.cc +0 -69
- package/build/_deps/benchmark-src/test/filter_test.cc +0 -117
- package/build/_deps/benchmark-src/test/fixture_test.cc +0 -51
- package/build/_deps/benchmark-src/test/internal_threading_test.cc +0 -185
- package/build/_deps/benchmark-src/test/link_main_test.cc +0 -9
- package/build/_deps/benchmark-src/test/map_test.cc +0 -59
- package/build/_deps/benchmark-src/test/memory_manager_test.cc +0 -47
- package/build/_deps/benchmark-src/test/min_time_parse_gtest.cc +0 -30
- package/build/_deps/benchmark-src/test/multiple_ranges_test.cc +0 -96
- package/build/_deps/benchmark-src/test/options_test.cc +0 -77
- package/build/_deps/benchmark-src/test/output_test.h +0 -211
- package/build/_deps/benchmark-src/test/output_test_helper.cc +0 -519
- package/build/_deps/benchmark-src/test/perf_counters_gtest.cc +0 -307
- package/build/_deps/benchmark-src/test/perf_counters_test.cc +0 -92
- package/build/_deps/benchmark-src/test/register_benchmark_test.cc +0 -196
- package/build/_deps/benchmark-src/test/repetitions_test.cc +0 -214
- package/build/_deps/benchmark-src/test/report_aggregates_only_test.cc +0 -41
- package/build/_deps/benchmark-src/test/reporter_output_test.cc +0 -1130
- package/build/_deps/benchmark-src/test/skip_with_error_test.cc +0 -199
- package/build/_deps/benchmark-src/test/spec_arg_test.cc +0 -105
- package/build/_deps/benchmark-src/test/spec_arg_verbosity_test.cc +0 -43
- package/build/_deps/benchmark-src/test/state_assembly_test.cc +0 -68
- package/build/_deps/benchmark-src/test/statistics_gtest.cc +0 -35
- package/build/_deps/benchmark-src/test/string_util_gtest.cc +0 -199
- package/build/_deps/benchmark-src/test/templated_fixture_test.cc +0 -28
- package/build/_deps/benchmark-src/test/time_unit_gtest.cc +0 -37
- package/build/_deps/benchmark-src/test/user_counters_tabular_test.cc +0 -558
- package/build/_deps/benchmark-src/test/user_counters_test.cc +0 -561
- package/build/_deps/benchmark-src/test/user_counters_thousands_test.cc +0 -186
- package/build/_deps/benchmark-src/tools/BUILD.bazel +0 -19
- package/build/_deps/benchmark-src/tools/compare.py +0 -432
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test1_run1.json +0 -127
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test1_run2.json +0 -127
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test2_run.json +0 -81
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test3_run0.json +0 -65
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test3_run1.json +0 -65
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run.json +0 -96
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run0.json +0 -21
- package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run1.json +0 -21
- package/build/_deps/benchmark-src/tools/gbench/__init__.py +0 -8
- package/build/_deps/benchmark-src/tools/gbench/report.py +0 -1201
- package/build/_deps/benchmark-src/tools/gbench/util.py +0 -203
- package/build/_deps/benchmark-src/tools/libpfm.BUILD.bazel +0 -22
- package/build/_deps/benchmark-src/tools/requirements.txt +0 -2
- package/build/_deps/benchmark-src/tools/strip_asm.py +0 -151
- package/build/_deps/benchmark-subbuild/CMakeCache.txt +0 -133
- package/build/_deps/benchmark-subbuild/CMakeFiles/4.0.3/CMakeSystem.cmake +0 -15
- package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeConfigureLog.yaml +0 -11
- package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
- package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeRuleHashes.txt +0 -11
- package/build/_deps/benchmark-subbuild/CMakeFiles/InstallScripts.json +0 -7
- package/build/_deps/benchmark-subbuild/CMakeFiles/Makefile.cmake +0 -52
- package/build/_deps/benchmark-subbuild/CMakeFiles/Makefile2 +0 -122
- package/build/_deps/benchmark-subbuild/CMakeFiles/TargetDirectories.txt +0 -3
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate-complete +0 -0
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/DependInfo.cmake +0 -22
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/Labels.json +0 -46
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/Labels.txt +0 -14
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/build.make +0 -162
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/cmake_clean.cmake +0 -17
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/compiler_depend.make +0 -2
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/compiler_depend.ts +0 -2
- package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/progress.make +0 -10
- package/build/_deps/benchmark-subbuild/CMakeFiles/cmake.check_cache +0 -1
- package/build/_deps/benchmark-subbuild/CMakeFiles/progress.marks +0 -1
- package/build/_deps/benchmark-subbuild/CMakeLists.txt +0 -42
- package/build/_deps/benchmark-subbuild/Makefile +0 -162
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-build +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-configure +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-done +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-download +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-gitclone-lastrun.txt +0 -15
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-gitinfo.txt +0 -15
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-install +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-mkdir +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-patch +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-patch-info.txt +0 -6
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-test +0 -0
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-update-info.txt +0 -7
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-cfgcmd.txt +0 -1
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-gitclone.cmake +0 -87
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-gitupdate.cmake +0 -317
- package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-mkdirs.cmake +0 -27
- package/build/_deps/benchmark-subbuild/cmake_install.cmake +0 -56
- package/build/bin/avl-rb-range-search-benchmark +0 -0
- package/build/bin/avl-tree-benchmark +0 -0
- package/build/bin/deque-benchmark +0 -0
- package/build/bin/doubly-linked-list-benchmark +0 -0
- package/build/bin/hash-map-benchmark +0 -0
- package/build/bin/heap-benchmark +0 -0
- package/build/bin/priority-queue-benchmark +0 -0
- package/build/bin/queue-benchmark +0 -0
- package/build/bin/red-black-tree-benchmark +0 -0
- package/build/bin/singly-linked-list-benchmark +0 -0
- package/build/bin/stack-benchmark +0 -0
- package/build/bin/tree-map-benchmark +0 -0
- package/build/bin/tree-multi-map-benchmark +0 -0
- package/build/bin/tree-multi-set-benchmark +0 -0
- package/build/bin/tree-set-benchmark +0 -0
- package/build/cmake_install.cmake +0 -66
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs-legacy/index.cjs.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm-legacy/index.mjs.map +0 -1
- package/dist/umd/data-structure-typed.js.map +0 -1
- package/dist/umd/data-structure-typed.min.js.map +0 -1
- package/eslint.config.mjs +0 -73
- package/test/config.ts +0 -4
- package/test/integration/all-in-one.test.ts +0 -110
- package/test/integration/avl-tree.test.ts +0 -127
- package/test/integration/bst.test.ts +0 -385
- package/test/integration/compile.test.mjs +0 -159
- package/test/integration/compile.test.ts +0 -176
- package/test/integration/heap.test.js +0 -21
- package/test/integration/index.html +0 -462
- package/test/performance/benchmark-runner-enhanced.mjs +0 -818
- package/test/performance/cmake-benchmark-runner.mjs +0 -234
- package/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp +0 -112
- package/test/performance/data-structures/binary-tree/avl-rb-range-search.test.mjs +0 -51
- package/test/performance/data-structures/binary-tree/avl-tree.test.cpp +0 -181
- package/test/performance/data-structures/binary-tree/avl-tree.test.mjs +0 -138
- package/test/performance/data-structures/binary-tree/binary-tree-overall.test.mjs +0 -85
- package/test/performance/data-structures/binary-tree/binary-tree.test.mjs +0 -100
- package/test/performance/data-structures/binary-tree/bst.test.mjs +0 -61
- package/test/performance/data-structures/binary-tree/red-black-tree-cjs.test.mjs +0 -259
- package/test/performance/data-structures/binary-tree/red-black-tree.test.cpp +0 -213
- package/test/performance/data-structures/binary-tree/red-black-tree.test.mjs +0 -275
- package/test/performance/data-structures/binary-tree/tree-map.test.cpp +0 -129
- package/test/performance/data-structures/binary-tree/tree-map.test.mjs +0 -171
- package/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp +0 -205
- package/test/performance/data-structures/binary-tree/tree-multi-map.test.mjs +0 -106
- package/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp +0 -217
- package/test/performance/data-structures/binary-tree/tree-multi-set.test.mjs +0 -91
- package/test/performance/data-structures/binary-tree/tree-set.test.cpp +0 -127
- package/test/performance/data-structures/binary-tree/tree-set.test.mjs +0 -174
- package/test/performance/data-structures/comparison/comparison.test.mjs +0 -99
- package/test/performance/data-structures/graph/directed-graph.test.mjs +0 -38
- package/test/performance/data-structures/hash/hash-map.test.cpp +0 -183
- package/test/performance/data-structures/hash/hash-map.test.mjs +0 -187
- package/test/performance/data-structures/heap/heap.test.cpp +0 -61
- package/test/performance/data-structures/heap/heap.test.mjs +0 -31
- package/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp +0 -84
- package/test/performance/data-structures/linked-list/doubly-linked-list.test.mjs +0 -125
- package/test/performance/data-structures/linked-list/singly-linked-list.test.cpp +0 -77
- package/test/performance/data-structures/linked-list/singly-linked-list.test.mjs +0 -84
- package/test/performance/data-structures/priority-queue/max-priority-queue.test.mjs +0 -40
- package/test/performance/data-structures/priority-queue/priority-queue.test.cpp +0 -59
- package/test/performance/data-structures/priority-queue/priority-queue.test.mjs +0 -64
- package/test/performance/data-structures/queue/deque.test.cpp +0 -119
- package/test/performance/data-structures/queue/deque.test.mjs +0 -144
- package/test/performance/data-structures/queue/queue.test.cpp +0 -59
- package/test/performance/data-structures/queue/queue.test.mjs +0 -77
- package/test/performance/data-structures/stack/stack.test.cpp +0 -40
- package/test/performance/data-structures/stack/stack.test.mjs +0 -69
- package/test/performance/data-structures/trie/trie.test.mjs +0 -43
- package/test/performance/reportor-enhanced.mjs +0 -1027
- package/test/performance/runner-config.json +0 -51
- package/test/types/index.ts +0 -1
- package/test/types/utils/big-o.ts +0 -1
- package/test/types/utils/index.ts +0 -2
- package/test/types/utils/json2html.ts +0 -5
- package/test/unit/data-structures/base/iterable-element-base.coverage.test.ts +0 -106
- package/test/unit/data-structures/base/iterable-element-base.more-branches.coverage.test.ts +0 -61
- package/test/unit/data-structures/base/linear-base.array.coverage.test.ts +0 -168
- package/test/unit/data-structures/base/linear-base.concat-else.coverage.test.ts +0 -82
- package/test/unit/data-structures/base/linear-base.coverage.test.ts +0 -72
- package/test/unit/data-structures/base/linear-base.more-branches.coverage.test.ts +0 -414
- package/test/unit/data-structures/binary-tree/avl-tree-node.familyPosition-root-left.coverage.test.ts +0 -17
- package/test/unit/data-structures/binary-tree/avl-tree.more-branches-2.coverage.test.ts +0 -99
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +0 -729
- package/test/unit/data-structures/binary-tree/binary-index-tree.test.ts +0 -345
- package/test/unit/data-structures/binary-tree/binary-indexed-tree.more-branches.coverage.test.ts +0 -18
- package/test/unit/data-structures/binary-tree/binary-tree.more-branches.coverage.test.ts +0 -56
- package/test/unit/data-structures/binary-tree/binary-tree.remaining-branches.coverage.test.ts +0 -232
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +0 -1912
- package/test/unit/data-structures/binary-tree/bst.bound-by-predicate.coverage.test.ts +0 -33
- package/test/unit/data-structures/binary-tree/bst.coverage.test.ts +0 -94
- package/test/unit/data-structures/binary-tree/bst.deletebykey.coverage.test.ts +0 -70
- package/test/unit/data-structures/binary-tree/bst.deletewhere.coverage.test.ts +0 -37
- package/test/unit/data-structures/binary-tree/bst.floor-lower-predicate.coverage.test.ts +0 -29
- package/test/unit/data-structures/binary-tree/bst.floor-setmany.coverage.test.ts +0 -72
- package/test/unit/data-structures/binary-tree/bst.getnode.range-ensure.coverage.test.ts +0 -22
- package/test/unit/data-structures/binary-tree/bst.misc-branches.coverage.test.ts +0 -100
- package/test/unit/data-structures/binary-tree/bst.more-branches-2.coverage.test.ts +0 -133
- package/test/unit/data-structures/binary-tree/bst.more-branches-3.coverage.test.ts +0 -45
- package/test/unit/data-structures/binary-tree/bst.more-branches-4.coverage.test.ts +0 -36
- package/test/unit/data-structures/binary-tree/bst.more-branches-5.coverage.test.ts +0 -40
- package/test/unit/data-structures/binary-tree/bst.more.coverage.test.ts +0 -39
- package/test/unit/data-structures/binary-tree/bst.node-family.coverage.test.ts +0 -29
- package/test/unit/data-structures/binary-tree/bst.range-pruning.coverage.test.ts +0 -43
- package/test/unit/data-structures/binary-tree/bst.search-fastpath.coverage.test.ts +0 -30
- package/test/unit/data-structures/binary-tree/bst.test.ts +0 -3472
- package/test/unit/data-structures/binary-tree/data/cost-of-living-by-country.ts +0 -259
- package/test/unit/data-structures/binary-tree/overall.test.ts +0 -219
- package/test/unit/data-structures/binary-tree/red-black-tree.boundary-corruption-repair.coverage.test.ts +0 -66
- package/test/unit/data-structures/binary-tree/red-black-tree.boundary-max-update.coverage.test.ts +0 -18
- package/test/unit/data-structures/binary-tree/red-black-tree.boundary-null.coverage.test.ts +0 -53
- package/test/unit/data-structures/binary-tree/red-black-tree.boundary-stale-cache.coverage.test.ts +0 -25
- package/test/unit/data-structures/binary-tree/red-black-tree.boundary-update.coverage.test.ts +0 -23
- package/test/unit/data-structures/binary-tree/red-black-tree.cache-delete.coverage.test.ts +0 -49
- package/test/unit/data-structures/binary-tree/red-black-tree.cache-edge.coverage.test.ts +0 -37
- package/test/unit/data-structures/binary-tree/red-black-tree.cache-stale-insert.coverage.test.ts +0 -39
- package/test/unit/data-structures/binary-tree/red-black-tree.coverage.test.ts +0 -334
- package/test/unit/data-structures/binary-tree/red-black-tree.delete-fixup.coverage.test.ts +0 -68
- package/test/unit/data-structures/binary-tree/red-black-tree.delete-successor.coverage.test.ts +0 -75
- package/test/unit/data-structures/binary-tree/red-black-tree.factories.coverage.test.ts +0 -26
- package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-compare-update.coverage.test.ts +0 -74
- package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-no-update.coverage.test.ts +0 -44
- package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-nullish.coverage.test.ts +0 -61
- package/test/unit/data-structures/binary-tree/red-black-tree.hint-mapmode-defined.coverage.test.ts +0 -35
- package/test/unit/data-structures/binary-tree/red-black-tree.hint-mapmode-undefined.coverage.test.ts +0 -43
- package/test/unit/data-structures/binary-tree/red-black-tree.hint-more.coverage.test.ts +0 -99
- package/test/unit/data-structures/binary-tree/red-black-tree.hint.coverage.test.ts +0 -60
- package/test/unit/data-structures/binary-tree/red-black-tree.insert-cache-nullish.coverage.test.ts +0 -29
- package/test/unit/data-structures/binary-tree/red-black-tree.insert-header-parent-nullish.coverage.test.ts +0 -17
- package/test/unit/data-structures/binary-tree/red-black-tree.internal-walk.coverage.test.ts +0 -57
- package/test/unit/data-structures/binary-tree/red-black-tree.minmax-cache.test.ts +0 -65
- package/test/unit/data-structures/binary-tree/red-black-tree.misc-inputs.coverage.test.ts +0 -17
- package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-2.coverage.test.ts +0 -121
- package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-3.coverage.test.ts +0 -55
- package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-4.coverage.test.ts +0 -44
- package/test/unit/data-structures/binary-tree/red-black-tree.predsucc.coverage.test.ts +0 -40
- package/test/unit/data-structures/binary-tree/red-black-tree.remaining-branches.coverage.test.ts +0 -123
- package/test/unit/data-structures/binary-tree/red-black-tree.set-inputs.coverage.test.ts +0 -64
- package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-parent-cache.coverage.test.ts +0 -79
- package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-remaining.coverage.test.ts +0 -44
- package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-uncovered.coverage.test.ts +0 -74
- package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +0 -936
- package/test/unit/data-structures/binary-tree/red-black-tree.update-branches.coverage.test.ts +0 -30
- package/test/unit/data-structures/binary-tree/segment-tree.more-branches.coverage.test.ts +0 -31
- package/test/unit/data-structures/binary-tree/segment-tree.test.ts +0 -104
- package/test/unit/data-structures/binary-tree/tree-map.test.ts +0 -316
- package/test/unit/data-structures/binary-tree/tree-multi-map.coverage.test.ts +0 -245
- package/test/unit/data-structures/binary-tree/tree-multi-map.legacy.test.ts.skip +0 -1115
- package/test/unit/data-structures/binary-tree/tree-multi-map.more-branches-2.coverage.test.ts.skip +0 -59
- package/test/unit/data-structures/binary-tree/tree-multi-map.rfc.test.ts +0 -146
- package/test/unit/data-structures/binary-tree/tree-multi-map.simplified.test.ts +0 -482
- package/test/unit/data-structures/binary-tree/tree-multi-set.test.ts +0 -594
- package/test/unit/data-structures/binary-tree/tree-set.test.ts +0 -231
- package/test/unit/data-structures/graph/abstract-graph.more-branches-2.coverage.test.ts +0 -40
- package/test/unit/data-structures/graph/abstract-graph.more-branches-3.coverage.test.ts +0 -65
- package/test/unit/data-structures/graph/abstract-graph.more-branches-4.coverage.test.ts +0 -98
- package/test/unit/data-structures/graph/abstract-graph.more-branches-5.coverage.test.ts +0 -51
- package/test/unit/data-structures/graph/abstract-graph.more-branches.coverage.test.ts +0 -62
- package/test/unit/data-structures/graph/abstract-graph.test.ts +0 -117
- package/test/unit/data-structures/graph/directed-graph.more-branches-2.coverage.test.ts +0 -38
- package/test/unit/data-structures/graph/directed-graph.more-branches-3.coverage.test.ts +0 -25
- package/test/unit/data-structures/graph/directed-graph.more-branches.coverage.test.ts +0 -82
- package/test/unit/data-structures/graph/directed-graph.test.ts +0 -1185
- package/test/unit/data-structures/graph/map-graph.more-branches.coverage.test.ts +0 -22
- package/test/unit/data-structures/graph/map-graph.test.ts +0 -148
- package/test/unit/data-structures/graph/overall.test.ts +0 -49
- package/test/unit/data-structures/graph/salty-edges.json +0 -875
- package/test/unit/data-structures/graph/salty-vertexes.json +0 -200
- package/test/unit/data-structures/graph/undirected-graph.more-branches-2.coverage.test.ts +0 -35
- package/test/unit/data-structures/graph/undirected-graph.more-branches.coverage.test.ts +0 -87
- package/test/unit/data-structures/graph/undirected-graph.test.ts +0 -782
- package/test/unit/data-structures/hash/hash-map.more-branches.coverage.test.ts +0 -64
- package/test/unit/data-structures/hash/hash-map.test.ts +0 -1125
- package/test/unit/data-structures/hash/hash-map.toEntryFn-branch.coverage.test.ts +0 -9
- package/test/unit/data-structures/heap/heap.misc-branches.coverage.test.ts +0 -110
- package/test/unit/data-structures/heap/heap.remaining-branches.coverage.test.ts +0 -22
- package/test/unit/data-structures/heap/heap.test.ts +0 -760
- package/test/unit/data-structures/heap/max-heap.coverage.test.ts +0 -29
- package/test/unit/data-structures/heap/max-heap.test.ts +0 -98
- package/test/unit/data-structures/heap/min-heap.test.ts +0 -117
- package/test/unit/data-structures/linked-list/doubly-linked-list.more-branches.coverage.test.ts +0 -72
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +0 -1150
- package/test/unit/data-structures/linked-list/linked-list.test.ts +0 -8
- package/test/unit/data-structures/linked-list/linked-list.unshiftMany-else.coverage.test.ts +0 -15
- package/test/unit/data-structures/linked-list/singly-linked-list.coverage.test.ts +0 -221
- package/test/unit/data-structures/linked-list/singly-linked-list.more-branches.coverage.test.ts +0 -86
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +0 -836
- package/test/unit/data-structures/linked-list/skip-linked-list.more-branches.coverage.test.ts +0 -31
- package/test/unit/data-structures/linked-list/skip-linked-list.test.ts +0 -13
- package/test/unit/data-structures/linked-list/skip-list.test.ts +0 -86
- package/test/unit/data-structures/matrix/matrix.more-branches.coverage.test.ts +0 -81
- package/test/unit/data-structures/matrix/matrix.pivotElement-nullish.coverage.test.ts +0 -28
- package/test/unit/data-structures/matrix/matrix.test.ts +0 -377
- package/test/unit/data-structures/matrix/navigator.test.ts +0 -244
- package/test/unit/data-structures/priority-queue/max-priority-queue.more-branches.coverage.test.ts +0 -10
- package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +0 -160
- package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +0 -78
- package/test/unit/data-structures/priority-queue/priority-queue.coverage.test.ts +0 -21
- package/test/unit/data-structures/priority-queue/priority-queue.test.ts +0 -101
- package/test/unit/data-structures/queue/deque.coverage.test.ts +0 -173
- package/test/unit/data-structures/queue/deque.more-branches-2.coverage.test.ts +0 -39
- package/test/unit/data-structures/queue/deque.more-branches-3.coverage.test.ts +0 -9
- package/test/unit/data-structures/queue/deque.more-branches.coverage.test.ts +0 -95
- package/test/unit/data-structures/queue/deque.test.ts +0 -936
- package/test/unit/data-structures/queue/queue.coverage.test.ts +0 -138
- package/test/unit/data-structures/queue/queue.more-branches-2.coverage.test.ts +0 -27
- package/test/unit/data-structures/queue/queue.test.ts +0 -703
- package/test/unit/data-structures/stack/stack.coverage.test.ts +0 -112
- package/test/unit/data-structures/stack/stack.test.ts +0 -438
- package/test/unit/data-structures/tree/tree.more-branches.coverage.test.ts +0 -9
- package/test/unit/data-structures/tree/tree.test.ts +0 -58
- package/test/unit/data-structures/trie/trie.more-branches-2.coverage.test.ts +0 -51
- package/test/unit/data-structures/trie/trie.test.ts +0 -1181
- package/test/unit/unrestricted-interconversion.test.ts +0 -299
- package/test/unit/utils/utils.test.ts +0 -174
- package/test/utils/array.ts +0 -5517
- package/test/utils/big-o.ts +0 -228
- package/test/utils/console.ts +0 -31
- package/test/utils/index.ts +0 -8
- package/test/utils/is.ts +0 -56
- package/test/utils/json2html.ts +0 -164
- package/test/utils/number.ts +0 -13
- package/test/utils/patch.ts +0 -33
- package/test/utils/perf.mjs +0 -34
- package/test/utils/performanc.ts +0 -7
- package/test/utils/string.ts +0 -49
- package/tsconfig.types.json +0 -15
- package/tsup.config.js +0 -63
- package/tsup.umd.config.js +0 -29
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
// Copyright 2015 Google Inc. All rights reserved.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#include <cstdlib>
|
|
16
|
-
#include <iostream>
|
|
17
|
-
#include <map>
|
|
18
|
-
#include <string>
|
|
19
|
-
#include <tuple>
|
|
20
|
-
#include <vector>
|
|
21
|
-
|
|
22
|
-
#include "benchmark/benchmark.h"
|
|
23
|
-
#include "check.h"
|
|
24
|
-
#include "string_util.h"
|
|
25
|
-
#include "timers.h"
|
|
26
|
-
|
|
27
|
-
namespace benchmark {
|
|
28
|
-
|
|
29
|
-
BenchmarkReporter::BenchmarkReporter()
|
|
30
|
-
: output_stream_(&std::cout), error_stream_(&std::cerr) {}
|
|
31
|
-
|
|
32
|
-
BenchmarkReporter::~BenchmarkReporter() {}
|
|
33
|
-
|
|
34
|
-
void BenchmarkReporter::PrintBasicContext(std::ostream *out,
|
|
35
|
-
Context const &context) {
|
|
36
|
-
BM_CHECK(out) << "cannot be null";
|
|
37
|
-
auto &Out = *out;
|
|
38
|
-
|
|
39
|
-
#ifndef BENCHMARK_OS_QURT
|
|
40
|
-
// Date/time information is not available on QuRT.
|
|
41
|
-
// Attempting to get it via this call cause the binary to crash.
|
|
42
|
-
Out << LocalDateTimeString() << "\n";
|
|
43
|
-
#endif
|
|
44
|
-
|
|
45
|
-
if (context.executable_name)
|
|
46
|
-
Out << "Running " << context.executable_name << "\n";
|
|
47
|
-
|
|
48
|
-
const CPUInfo &info = context.cpu_info;
|
|
49
|
-
Out << "Run on (" << info.num_cpus << " X "
|
|
50
|
-
<< (info.cycles_per_second / 1000000.0) << " MHz CPU "
|
|
51
|
-
<< ((info.num_cpus > 1) ? "s" : "") << ")\n";
|
|
52
|
-
if (info.caches.size() != 0) {
|
|
53
|
-
Out << "CPU Caches:\n";
|
|
54
|
-
for (auto &CInfo : info.caches) {
|
|
55
|
-
Out << " L" << CInfo.level << " " << CInfo.type << " "
|
|
56
|
-
<< (CInfo.size / 1024) << " KiB";
|
|
57
|
-
if (CInfo.num_sharing != 0)
|
|
58
|
-
Out << " (x" << (info.num_cpus / CInfo.num_sharing) << ")";
|
|
59
|
-
Out << "\n";
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (!info.load_avg.empty()) {
|
|
63
|
-
Out << "Load Average: ";
|
|
64
|
-
for (auto It = info.load_avg.begin(); It != info.load_avg.end();) {
|
|
65
|
-
Out << StrFormat("%.2f", *It++);
|
|
66
|
-
if (It != info.load_avg.end()) Out << ", ";
|
|
67
|
-
}
|
|
68
|
-
Out << "\n";
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
std::map<std::string, std::string> *global_context =
|
|
72
|
-
internal::GetGlobalContext();
|
|
73
|
-
|
|
74
|
-
if (global_context != nullptr) {
|
|
75
|
-
for (const auto &kv : *global_context) {
|
|
76
|
-
Out << kv.first << ": " << kv.second << "\n";
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (CPUInfo::Scaling::ENABLED == info.scaling) {
|
|
81
|
-
Out << "***WARNING*** CPU scaling is enabled, the benchmark "
|
|
82
|
-
"real time measurements may be noisy and will incur extra "
|
|
83
|
-
"overhead.\n";
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
#ifndef NDEBUG
|
|
87
|
-
Out << "***WARNING*** Library was built as DEBUG. Timings may be "
|
|
88
|
-
"affected.\n";
|
|
89
|
-
#endif
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// No initializer because it's already initialized to NULL.
|
|
93
|
-
const char *BenchmarkReporter::Context::executable_name;
|
|
94
|
-
|
|
95
|
-
BenchmarkReporter::Context::Context()
|
|
96
|
-
: cpu_info(CPUInfo::Get()), sys_info(SystemInfo::Get()) {}
|
|
97
|
-
|
|
98
|
-
std::string BenchmarkReporter::Run::benchmark_name() const {
|
|
99
|
-
std::string name = run_name.str();
|
|
100
|
-
if (run_type == RT_Aggregate) {
|
|
101
|
-
name += "_" + aggregate_name;
|
|
102
|
-
}
|
|
103
|
-
return name;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
double BenchmarkReporter::Run::GetAdjustedRealTime() const {
|
|
107
|
-
double new_time = real_accumulated_time * GetTimeUnitMultiplier(time_unit);
|
|
108
|
-
if (iterations != 0) new_time /= static_cast<double>(iterations);
|
|
109
|
-
return new_time;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
double BenchmarkReporter::Run::GetAdjustedCPUTime() const {
|
|
113
|
-
double new_time = cpu_accumulated_time * GetTimeUnitMultiplier(time_unit);
|
|
114
|
-
if (iterations != 0) new_time /= static_cast<double>(iterations);
|
|
115
|
-
return new_time;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
} // end namespace benchmark
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
// Copyright 2016 Ismael Jimenez Martinez. All rights reserved.
|
|
2
|
-
// Copyright 2017 Roman Lebedev. All rights reserved.
|
|
3
|
-
//
|
|
4
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
// you may not use this file except in compliance with the License.
|
|
6
|
-
// You may obtain a copy of the License at
|
|
7
|
-
//
|
|
8
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
//
|
|
10
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
// See the License for the specific language governing permissions and
|
|
14
|
-
// limitations under the License.
|
|
15
|
-
|
|
16
|
-
#include "statistics.h"
|
|
17
|
-
|
|
18
|
-
#include <algorithm>
|
|
19
|
-
#include <cmath>
|
|
20
|
-
#include <numeric>
|
|
21
|
-
#include <string>
|
|
22
|
-
#include <vector>
|
|
23
|
-
|
|
24
|
-
#include "benchmark/benchmark.h"
|
|
25
|
-
#include "check.h"
|
|
26
|
-
|
|
27
|
-
namespace benchmark {
|
|
28
|
-
|
|
29
|
-
auto StatisticsSum = [](const std::vector<double>& v) {
|
|
30
|
-
return std::accumulate(v.begin(), v.end(), 0.0);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
double StatisticsMean(const std::vector<double>& v) {
|
|
34
|
-
if (v.empty()) return 0.0;
|
|
35
|
-
return StatisticsSum(v) * (1.0 / v.size());
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
double StatisticsMedian(const std::vector<double>& v) {
|
|
39
|
-
if (v.size() < 3) return StatisticsMean(v);
|
|
40
|
-
std::vector<double> copy(v);
|
|
41
|
-
|
|
42
|
-
auto center = copy.begin() + v.size() / 2;
|
|
43
|
-
std::nth_element(copy.begin(), center, copy.end());
|
|
44
|
-
|
|
45
|
-
// Did we have an odd number of samples? If yes, then center is the median.
|
|
46
|
-
// If not, then we are looking for the average between center and the value
|
|
47
|
-
// before. Instead of resorting, we just look for the max value before it,
|
|
48
|
-
// which is not necessarily the element immediately preceding `center` Since
|
|
49
|
-
// `copy` is only partially sorted by `nth_element`.
|
|
50
|
-
if (v.size() % 2 == 1) return *center;
|
|
51
|
-
auto center2 = std::max_element(copy.begin(), center);
|
|
52
|
-
return (*center + *center2) / 2.0;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Return the sum of the squares of this sample set
|
|
56
|
-
auto SumSquares = [](const std::vector<double>& v) {
|
|
57
|
-
return std::inner_product(v.begin(), v.end(), v.begin(), 0.0);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
auto Sqr = [](const double dat) { return dat * dat; };
|
|
61
|
-
auto Sqrt = [](const double dat) {
|
|
62
|
-
// Avoid NaN due to imprecision in the calculations
|
|
63
|
-
if (dat < 0.0) return 0.0;
|
|
64
|
-
return std::sqrt(dat);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
double StatisticsStdDev(const std::vector<double>& v) {
|
|
68
|
-
const auto mean = StatisticsMean(v);
|
|
69
|
-
if (v.empty()) return mean;
|
|
70
|
-
|
|
71
|
-
// Sample standard deviation is undefined for n = 1
|
|
72
|
-
if (v.size() == 1) return 0.0;
|
|
73
|
-
|
|
74
|
-
const double avg_squares = SumSquares(v) * (1.0 / v.size());
|
|
75
|
-
return Sqrt(v.size() / (v.size() - 1.0) * (avg_squares - Sqr(mean)));
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
double StatisticsCV(const std::vector<double>& v) {
|
|
79
|
-
if (v.size() < 2) return 0.0;
|
|
80
|
-
|
|
81
|
-
const auto stddev = StatisticsStdDev(v);
|
|
82
|
-
const auto mean = StatisticsMean(v);
|
|
83
|
-
|
|
84
|
-
return stddev / mean;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
std::vector<BenchmarkReporter::Run> ComputeStats(
|
|
88
|
-
const std::vector<BenchmarkReporter::Run>& reports) {
|
|
89
|
-
typedef BenchmarkReporter::Run Run;
|
|
90
|
-
std::vector<Run> results;
|
|
91
|
-
|
|
92
|
-
auto error_count = std::count_if(reports.begin(), reports.end(),
|
|
93
|
-
[](Run const& run) { return run.skipped; });
|
|
94
|
-
|
|
95
|
-
if (reports.size() - error_count < 2) {
|
|
96
|
-
// We don't report aggregated data if there was a single run.
|
|
97
|
-
return results;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// Accumulators.
|
|
101
|
-
std::vector<double> real_accumulated_time_stat;
|
|
102
|
-
std::vector<double> cpu_accumulated_time_stat;
|
|
103
|
-
|
|
104
|
-
real_accumulated_time_stat.reserve(reports.size());
|
|
105
|
-
cpu_accumulated_time_stat.reserve(reports.size());
|
|
106
|
-
|
|
107
|
-
// All repetitions should be run with the same number of iterations so we
|
|
108
|
-
// can take this information from the first benchmark.
|
|
109
|
-
const IterationCount run_iterations = reports.front().iterations;
|
|
110
|
-
// create stats for user counters
|
|
111
|
-
struct CounterStat {
|
|
112
|
-
Counter c;
|
|
113
|
-
std::vector<double> s;
|
|
114
|
-
};
|
|
115
|
-
std::map<std::string, CounterStat> counter_stats;
|
|
116
|
-
for (Run const& r : reports) {
|
|
117
|
-
for (auto const& cnt : r.counters) {
|
|
118
|
-
auto it = counter_stats.find(cnt.first);
|
|
119
|
-
if (it == counter_stats.end()) {
|
|
120
|
-
it = counter_stats
|
|
121
|
-
.emplace(cnt.first,
|
|
122
|
-
CounterStat{cnt.second, std::vector<double>{}})
|
|
123
|
-
.first;
|
|
124
|
-
it->second.s.reserve(reports.size());
|
|
125
|
-
} else {
|
|
126
|
-
BM_CHECK_EQ(it->second.c.flags, cnt.second.flags);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Populate the accumulators.
|
|
132
|
-
for (Run const& run : reports) {
|
|
133
|
-
BM_CHECK_EQ(reports[0].benchmark_name(), run.benchmark_name());
|
|
134
|
-
BM_CHECK_EQ(run_iterations, run.iterations);
|
|
135
|
-
if (run.skipped) continue;
|
|
136
|
-
real_accumulated_time_stat.emplace_back(run.real_accumulated_time);
|
|
137
|
-
cpu_accumulated_time_stat.emplace_back(run.cpu_accumulated_time);
|
|
138
|
-
// user counters
|
|
139
|
-
for (auto const& cnt : run.counters) {
|
|
140
|
-
auto it = counter_stats.find(cnt.first);
|
|
141
|
-
BM_CHECK_NE(it, counter_stats.end());
|
|
142
|
-
it->second.s.emplace_back(cnt.second);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Only add label if it is same for all runs
|
|
147
|
-
std::string report_label = reports[0].report_label;
|
|
148
|
-
for (std::size_t i = 1; i < reports.size(); i++) {
|
|
149
|
-
if (reports[i].report_label != report_label) {
|
|
150
|
-
report_label = "";
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
const double iteration_rescale_factor =
|
|
156
|
-
double(reports.size()) / double(run_iterations);
|
|
157
|
-
|
|
158
|
-
for (const auto& Stat : *reports[0].statistics) {
|
|
159
|
-
// Get the data from the accumulator to BenchmarkReporter::Run's.
|
|
160
|
-
Run data;
|
|
161
|
-
data.run_name = reports[0].run_name;
|
|
162
|
-
data.family_index = reports[0].family_index;
|
|
163
|
-
data.per_family_instance_index = reports[0].per_family_instance_index;
|
|
164
|
-
data.run_type = BenchmarkReporter::Run::RT_Aggregate;
|
|
165
|
-
data.threads = reports[0].threads;
|
|
166
|
-
data.repetitions = reports[0].repetitions;
|
|
167
|
-
data.repetition_index = Run::no_repetition_index;
|
|
168
|
-
data.aggregate_name = Stat.name_;
|
|
169
|
-
data.aggregate_unit = Stat.unit_;
|
|
170
|
-
data.report_label = report_label;
|
|
171
|
-
|
|
172
|
-
// It is incorrect to say that an aggregate is computed over
|
|
173
|
-
// run's iterations, because those iterations already got averaged.
|
|
174
|
-
// Similarly, if there are N repetitions with 1 iterations each,
|
|
175
|
-
// an aggregate will be computed over N measurements, not 1.
|
|
176
|
-
// Thus it is best to simply use the count of separate reports.
|
|
177
|
-
data.iterations = reports.size();
|
|
178
|
-
|
|
179
|
-
data.real_accumulated_time = Stat.compute_(real_accumulated_time_stat);
|
|
180
|
-
data.cpu_accumulated_time = Stat.compute_(cpu_accumulated_time_stat);
|
|
181
|
-
|
|
182
|
-
if (data.aggregate_unit == StatisticUnit::kTime) {
|
|
183
|
-
// We will divide these times by data.iterations when reporting, but the
|
|
184
|
-
// data.iterations is not necessarily the scale of these measurements,
|
|
185
|
-
// because in each repetition, these timers are sum over all the iters.
|
|
186
|
-
// And if we want to say that the stats are over N repetitions and not
|
|
187
|
-
// M iterations, we need to multiply these by (N/M).
|
|
188
|
-
data.real_accumulated_time *= iteration_rescale_factor;
|
|
189
|
-
data.cpu_accumulated_time *= iteration_rescale_factor;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
data.time_unit = reports[0].time_unit;
|
|
193
|
-
|
|
194
|
-
// user counters
|
|
195
|
-
for (auto const& kv : counter_stats) {
|
|
196
|
-
// Do *NOT* rescale the custom counters. They are already properly scaled.
|
|
197
|
-
const auto uc_stat = Stat.compute_(kv.second.s);
|
|
198
|
-
auto c = Counter(uc_stat, counter_stats[kv.first].c.flags,
|
|
199
|
-
counter_stats[kv.first].c.oneK);
|
|
200
|
-
data.counters[kv.first] = c;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
results.push_back(data);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
return results;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
} // end namespace benchmark
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// Copyright 2016 Ismael Jimenez Martinez. All rights reserved.
|
|
2
|
-
// Copyright 2017 Roman Lebedev. All rights reserved.
|
|
3
|
-
//
|
|
4
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
// you may not use this file except in compliance with the License.
|
|
6
|
-
// You may obtain a copy of the License at
|
|
7
|
-
//
|
|
8
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
//
|
|
10
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
// See the License for the specific language governing permissions and
|
|
14
|
-
// limitations under the License.
|
|
15
|
-
|
|
16
|
-
#ifndef STATISTICS_H_
|
|
17
|
-
#define STATISTICS_H_
|
|
18
|
-
|
|
19
|
-
#include <vector>
|
|
20
|
-
|
|
21
|
-
#include "benchmark/benchmark.h"
|
|
22
|
-
|
|
23
|
-
namespace benchmark {
|
|
24
|
-
|
|
25
|
-
// Return a vector containing the mean, median and standard deviation
|
|
26
|
-
// information (and any user-specified info) for the specified list of reports.
|
|
27
|
-
// If 'reports' contains less than two non-errored runs an empty vector is
|
|
28
|
-
// returned
|
|
29
|
-
BENCHMARK_EXPORT
|
|
30
|
-
std::vector<BenchmarkReporter::Run> ComputeStats(
|
|
31
|
-
const std::vector<BenchmarkReporter::Run>& reports);
|
|
32
|
-
|
|
33
|
-
BENCHMARK_EXPORT
|
|
34
|
-
double StatisticsMean(const std::vector<double>& v);
|
|
35
|
-
BENCHMARK_EXPORT
|
|
36
|
-
double StatisticsMedian(const std::vector<double>& v);
|
|
37
|
-
BENCHMARK_EXPORT
|
|
38
|
-
double StatisticsStdDev(const std::vector<double>& v);
|
|
39
|
-
BENCHMARK_EXPORT
|
|
40
|
-
double StatisticsCV(const std::vector<double>& v);
|
|
41
|
-
|
|
42
|
-
} // end namespace benchmark
|
|
43
|
-
|
|
44
|
-
#endif // STATISTICS_H_
|
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
#include "string_util.h"
|
|
2
|
-
|
|
3
|
-
#include <array>
|
|
4
|
-
#ifdef BENCHMARK_STL_ANDROID_GNUSTL
|
|
5
|
-
#include <cerrno>
|
|
6
|
-
#endif
|
|
7
|
-
#include <cmath>
|
|
8
|
-
#include <cstdarg>
|
|
9
|
-
#include <cstdio>
|
|
10
|
-
#include <memory>
|
|
11
|
-
#include <sstream>
|
|
12
|
-
|
|
13
|
-
#include "arraysize.h"
|
|
14
|
-
#include "benchmark/benchmark.h"
|
|
15
|
-
|
|
16
|
-
namespace benchmark {
|
|
17
|
-
namespace {
|
|
18
|
-
// kilo, Mega, Giga, Tera, Peta, Exa, Zetta, Yotta.
|
|
19
|
-
const char* const kBigSIUnits[] = {"k", "M", "G", "T", "P", "E", "Z", "Y"};
|
|
20
|
-
// Kibi, Mebi, Gibi, Tebi, Pebi, Exbi, Zebi, Yobi.
|
|
21
|
-
const char* const kBigIECUnits[] = {"Ki", "Mi", "Gi", "Ti",
|
|
22
|
-
"Pi", "Ei", "Zi", "Yi"};
|
|
23
|
-
// milli, micro, nano, pico, femto, atto, zepto, yocto.
|
|
24
|
-
const char* const kSmallSIUnits[] = {"m", "u", "n", "p", "f", "a", "z", "y"};
|
|
25
|
-
|
|
26
|
-
// We require that all three arrays have the same size.
|
|
27
|
-
static_assert(arraysize(kBigSIUnits) == arraysize(kBigIECUnits),
|
|
28
|
-
"SI and IEC unit arrays must be the same size");
|
|
29
|
-
static_assert(arraysize(kSmallSIUnits) == arraysize(kBigSIUnits),
|
|
30
|
-
"Small SI and Big SI unit arrays must be the same size");
|
|
31
|
-
|
|
32
|
-
static const int64_t kUnitsSize = arraysize(kBigSIUnits);
|
|
33
|
-
|
|
34
|
-
void ToExponentAndMantissa(double val, int precision, double one_k,
|
|
35
|
-
std::string* mantissa, int64_t* exponent) {
|
|
36
|
-
std::stringstream mantissa_stream;
|
|
37
|
-
|
|
38
|
-
if (val < 0) {
|
|
39
|
-
mantissa_stream << "-";
|
|
40
|
-
val = -val;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Adjust threshold so that it never excludes things which can't be rendered
|
|
44
|
-
// in 'precision' digits.
|
|
45
|
-
const double adjusted_threshold =
|
|
46
|
-
std::max(1.0, 1.0 / std::pow(10.0, precision));
|
|
47
|
-
const double big_threshold = (adjusted_threshold * one_k) - 1;
|
|
48
|
-
const double small_threshold = adjusted_threshold;
|
|
49
|
-
// Values in ]simple_threshold,small_threshold[ will be printed as-is
|
|
50
|
-
const double simple_threshold = 0.01;
|
|
51
|
-
|
|
52
|
-
if (val > big_threshold) {
|
|
53
|
-
// Positive powers
|
|
54
|
-
double scaled = val;
|
|
55
|
-
for (size_t i = 0; i < arraysize(kBigSIUnits); ++i) {
|
|
56
|
-
scaled /= one_k;
|
|
57
|
-
if (scaled <= big_threshold) {
|
|
58
|
-
mantissa_stream << scaled;
|
|
59
|
-
*exponent = i + 1;
|
|
60
|
-
*mantissa = mantissa_stream.str();
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
mantissa_stream << val;
|
|
65
|
-
*exponent = 0;
|
|
66
|
-
} else if (val < small_threshold) {
|
|
67
|
-
// Negative powers
|
|
68
|
-
if (val < simple_threshold) {
|
|
69
|
-
double scaled = val;
|
|
70
|
-
for (size_t i = 0; i < arraysize(kSmallSIUnits); ++i) {
|
|
71
|
-
scaled *= one_k;
|
|
72
|
-
if (scaled >= small_threshold) {
|
|
73
|
-
mantissa_stream << scaled;
|
|
74
|
-
*exponent = -static_cast<int64_t>(i + 1);
|
|
75
|
-
*mantissa = mantissa_stream.str();
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
mantissa_stream << val;
|
|
81
|
-
*exponent = 0;
|
|
82
|
-
} else {
|
|
83
|
-
mantissa_stream << val;
|
|
84
|
-
*exponent = 0;
|
|
85
|
-
}
|
|
86
|
-
*mantissa = mantissa_stream.str();
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
std::string ExponentToPrefix(int64_t exponent, bool iec) {
|
|
90
|
-
if (exponent == 0) return "";
|
|
91
|
-
|
|
92
|
-
const int64_t index = (exponent > 0 ? exponent - 1 : -exponent - 1);
|
|
93
|
-
if (index >= kUnitsSize) return "";
|
|
94
|
-
|
|
95
|
-
const char* const* array =
|
|
96
|
-
(exponent > 0 ? (iec ? kBigIECUnits : kBigSIUnits) : kSmallSIUnits);
|
|
97
|
-
|
|
98
|
-
return std::string(array[index]);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
std::string ToBinaryStringFullySpecified(double value, int precision,
|
|
102
|
-
Counter::OneK one_k) {
|
|
103
|
-
std::string mantissa;
|
|
104
|
-
int64_t exponent;
|
|
105
|
-
ToExponentAndMantissa(value, precision,
|
|
106
|
-
one_k == Counter::kIs1024 ? 1024.0 : 1000.0, &mantissa,
|
|
107
|
-
&exponent);
|
|
108
|
-
return mantissa + ExponentToPrefix(exponent, one_k == Counter::kIs1024);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
std::string StrFormatImp(const char* msg, va_list args) {
|
|
112
|
-
// we might need a second shot at this, so pre-emptivly make a copy
|
|
113
|
-
va_list args_cp;
|
|
114
|
-
va_copy(args_cp, args);
|
|
115
|
-
|
|
116
|
-
// TODO(ericwf): use std::array for first attempt to avoid one memory
|
|
117
|
-
// allocation guess what the size might be
|
|
118
|
-
std::array<char, 256> local_buff;
|
|
119
|
-
|
|
120
|
-
// 2015-10-08: vsnprintf is used instead of snd::vsnprintf due to a limitation
|
|
121
|
-
// in the android-ndk
|
|
122
|
-
auto ret = vsnprintf(local_buff.data(), local_buff.size(), msg, args_cp);
|
|
123
|
-
|
|
124
|
-
va_end(args_cp);
|
|
125
|
-
|
|
126
|
-
// handle empty expansion
|
|
127
|
-
if (ret == 0) return std::string{};
|
|
128
|
-
if (static_cast<std::size_t>(ret) < local_buff.size())
|
|
129
|
-
return std::string(local_buff.data());
|
|
130
|
-
|
|
131
|
-
// we did not provide a long enough buffer on our first attempt.
|
|
132
|
-
// add 1 to size to account for null-byte in size cast to prevent overflow
|
|
133
|
-
std::size_t size = static_cast<std::size_t>(ret) + 1;
|
|
134
|
-
auto buff_ptr = std::unique_ptr<char[]>(new char[size]);
|
|
135
|
-
// 2015-10-08: vsnprintf is used instead of snd::vsnprintf due to a limitation
|
|
136
|
-
// in the android-ndk
|
|
137
|
-
vsnprintf(buff_ptr.get(), size, msg, args);
|
|
138
|
-
return std::string(buff_ptr.get());
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
} // end namespace
|
|
142
|
-
|
|
143
|
-
std::string HumanReadableNumber(double n, Counter::OneK one_k) {
|
|
144
|
-
return ToBinaryStringFullySpecified(n, 1, one_k);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
std::string StrFormat(const char* format, ...) {
|
|
148
|
-
va_list args;
|
|
149
|
-
va_start(args, format);
|
|
150
|
-
std::string tmp = StrFormatImp(format, args);
|
|
151
|
-
va_end(args);
|
|
152
|
-
return tmp;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
std::vector<std::string> StrSplit(const std::string& str, char delim) {
|
|
156
|
-
if (str.empty()) return {};
|
|
157
|
-
std::vector<std::string> ret;
|
|
158
|
-
size_t first = 0;
|
|
159
|
-
size_t next = str.find(delim);
|
|
160
|
-
for (; next != std::string::npos;
|
|
161
|
-
first = next + 1, next = str.find(delim, first)) {
|
|
162
|
-
ret.push_back(str.substr(first, next - first));
|
|
163
|
-
}
|
|
164
|
-
ret.push_back(str.substr(first));
|
|
165
|
-
return ret;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
#ifdef BENCHMARK_STL_ANDROID_GNUSTL
|
|
169
|
-
/*
|
|
170
|
-
* GNU STL in Android NDK lacks support for some C++11 functions, including
|
|
171
|
-
* stoul, stoi, stod. We reimplement them here using C functions strtoul,
|
|
172
|
-
* strtol, strtod. Note that reimplemented functions are in benchmark::
|
|
173
|
-
* namespace, not std:: namespace.
|
|
174
|
-
*/
|
|
175
|
-
unsigned long stoul(const std::string& str, size_t* pos, int base) {
|
|
176
|
-
/* Record previous errno */
|
|
177
|
-
const int oldErrno = errno;
|
|
178
|
-
errno = 0;
|
|
179
|
-
|
|
180
|
-
const char* strStart = str.c_str();
|
|
181
|
-
char* strEnd = const_cast<char*>(strStart);
|
|
182
|
-
const unsigned long result = strtoul(strStart, &strEnd, base);
|
|
183
|
-
|
|
184
|
-
const int strtoulErrno = errno;
|
|
185
|
-
/* Restore previous errno */
|
|
186
|
-
errno = oldErrno;
|
|
187
|
-
|
|
188
|
-
/* Check for errors and return */
|
|
189
|
-
if (strtoulErrno == ERANGE) {
|
|
190
|
-
throw std::out_of_range("stoul failed: " + str +
|
|
191
|
-
" is outside of range of unsigned long");
|
|
192
|
-
} else if (strEnd == strStart || strtoulErrno != 0) {
|
|
193
|
-
throw std::invalid_argument("stoul failed: " + str + " is not an integer");
|
|
194
|
-
}
|
|
195
|
-
if (pos != nullptr) {
|
|
196
|
-
*pos = static_cast<size_t>(strEnd - strStart);
|
|
197
|
-
}
|
|
198
|
-
return result;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
int stoi(const std::string& str, size_t* pos, int base) {
|
|
202
|
-
/* Record previous errno */
|
|
203
|
-
const int oldErrno = errno;
|
|
204
|
-
errno = 0;
|
|
205
|
-
|
|
206
|
-
const char* strStart = str.c_str();
|
|
207
|
-
char* strEnd = const_cast<char*>(strStart);
|
|
208
|
-
const long result = strtol(strStart, &strEnd, base);
|
|
209
|
-
|
|
210
|
-
const int strtolErrno = errno;
|
|
211
|
-
/* Restore previous errno */
|
|
212
|
-
errno = oldErrno;
|
|
213
|
-
|
|
214
|
-
/* Check for errors and return */
|
|
215
|
-
if (strtolErrno == ERANGE || long(int(result)) != result) {
|
|
216
|
-
throw std::out_of_range("stoul failed: " + str +
|
|
217
|
-
" is outside of range of int");
|
|
218
|
-
} else if (strEnd == strStart || strtolErrno != 0) {
|
|
219
|
-
throw std::invalid_argument("stoul failed: " + str + " is not an integer");
|
|
220
|
-
}
|
|
221
|
-
if (pos != nullptr) {
|
|
222
|
-
*pos = static_cast<size_t>(strEnd - strStart);
|
|
223
|
-
}
|
|
224
|
-
return int(result);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
double stod(const std::string& str, size_t* pos) {
|
|
228
|
-
/* Record previous errno */
|
|
229
|
-
const int oldErrno = errno;
|
|
230
|
-
errno = 0;
|
|
231
|
-
|
|
232
|
-
const char* strStart = str.c_str();
|
|
233
|
-
char* strEnd = const_cast<char*>(strStart);
|
|
234
|
-
const double result = strtod(strStart, &strEnd);
|
|
235
|
-
|
|
236
|
-
/* Restore previous errno */
|
|
237
|
-
const int strtodErrno = errno;
|
|
238
|
-
errno = oldErrno;
|
|
239
|
-
|
|
240
|
-
/* Check for errors and return */
|
|
241
|
-
if (strtodErrno == ERANGE) {
|
|
242
|
-
throw std::out_of_range("stoul failed: " + str +
|
|
243
|
-
" is outside of range of int");
|
|
244
|
-
} else if (strEnd == strStart || strtodErrno != 0) {
|
|
245
|
-
throw std::invalid_argument("stoul failed: " + str + " is not an integer");
|
|
246
|
-
}
|
|
247
|
-
if (pos != nullptr) {
|
|
248
|
-
*pos = static_cast<size_t>(strEnd - strStart);
|
|
249
|
-
}
|
|
250
|
-
return result;
|
|
251
|
-
}
|
|
252
|
-
#endif
|
|
253
|
-
|
|
254
|
-
} // end namespace benchmark
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
#ifndef BENCHMARK_STRING_UTIL_H_
|
|
2
|
-
#define BENCHMARK_STRING_UTIL_H_
|
|
3
|
-
|
|
4
|
-
#include <sstream>
|
|
5
|
-
#include <string>
|
|
6
|
-
#include <utility>
|
|
7
|
-
#include <vector>
|
|
8
|
-
|
|
9
|
-
#include "benchmark/benchmark.h"
|
|
10
|
-
#include "benchmark/export.h"
|
|
11
|
-
#include "check.h"
|
|
12
|
-
#include "internal_macros.h"
|
|
13
|
-
|
|
14
|
-
namespace benchmark {
|
|
15
|
-
|
|
16
|
-
BENCHMARK_EXPORT
|
|
17
|
-
std::string HumanReadableNumber(double n, Counter::OneK one_k);
|
|
18
|
-
|
|
19
|
-
BENCHMARK_EXPORT
|
|
20
|
-
#if defined(__MINGW32__)
|
|
21
|
-
__attribute__((format(__MINGW_PRINTF_FORMAT, 1, 2)))
|
|
22
|
-
#elif defined(__GNUC__)
|
|
23
|
-
__attribute__((format(printf, 1, 2)))
|
|
24
|
-
#endif
|
|
25
|
-
std::string
|
|
26
|
-
StrFormat(const char* format, ...);
|
|
27
|
-
|
|
28
|
-
inline std::ostream& StrCatImp(std::ostream& out) BENCHMARK_NOEXCEPT {
|
|
29
|
-
return out;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
template <class First, class... Rest>
|
|
33
|
-
inline std::ostream& StrCatImp(std::ostream& out, First&& f, Rest&&... rest) {
|
|
34
|
-
out << std::forward<First>(f);
|
|
35
|
-
return StrCatImp(out, std::forward<Rest>(rest)...);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
template <class... Args>
|
|
39
|
-
inline std::string StrCat(Args&&... args) {
|
|
40
|
-
std::ostringstream ss;
|
|
41
|
-
StrCatImp(ss, std::forward<Args>(args)...);
|
|
42
|
-
return ss.str();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
BENCHMARK_EXPORT
|
|
46
|
-
std::vector<std::string> StrSplit(const std::string& str, char delim);
|
|
47
|
-
|
|
48
|
-
// Disable lint checking for this block since it re-implements C functions.
|
|
49
|
-
// NOLINTBEGIN
|
|
50
|
-
#ifdef BENCHMARK_STL_ANDROID_GNUSTL
|
|
51
|
-
/*
|
|
52
|
-
* GNU STL in Android NDK lacks support for some C++11 functions, including
|
|
53
|
-
* stoul, stoi, stod. We reimplement them here using C functions strtoul,
|
|
54
|
-
* strtol, strtod. Note that reimplemented functions are in benchmark::
|
|
55
|
-
* namespace, not std:: namespace.
|
|
56
|
-
*/
|
|
57
|
-
unsigned long stoul(const std::string& str, size_t* pos = nullptr,
|
|
58
|
-
int base = 10);
|
|
59
|
-
int stoi(const std::string& str, size_t* pos = nullptr, int base = 10);
|
|
60
|
-
double stod(const std::string& str, size_t* pos = nullptr);
|
|
61
|
-
#else
|
|
62
|
-
using std::stod; // NOLINT(misc-unused-using-decls)
|
|
63
|
-
using std::stoi; // NOLINT(misc-unused-using-decls)
|
|
64
|
-
using std::stoul; // NOLINT(misc-unused-using-decls)
|
|
65
|
-
#endif
|
|
66
|
-
// NOLINTEND
|
|
67
|
-
|
|
68
|
-
} // end namespace benchmark
|
|
69
|
-
|
|
70
|
-
#endif // BENCHMARK_STRING_UTIL_H_
|