serenity/Tests/AK
Jelle Raaijmakers c08d137fcd AK: Reimplement HashTable with smart linear probing
Instead of rehashing on collisions, we use Robin Hood hashing: a simple
linear probe where we keep track of the distance between the bucket and
its ideal position. On insertion, we allow a new bucket to "steal" the
position of "rich" buckets (those near their ideal position) and move
them further down.

On removal, we shift buckets back up into the freed slot, decrementing
their distance while doing so.

This behavior automatically optimizes the number of required probes for
any value, and removes the need for periodic rehashing (except when
expanding the capacity).
2023-02-17 22:29:51 -07:00
..
CMakeLists.txt AK: Add AK::SIMD::exp_approximate 2023-02-18 01:45:00 +01:00
TestAllOf.cpp
TestAnyOf.cpp
TestArbitrarySizedEnum.cpp
TestArray.cpp Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
TestAtomic.cpp
TestBadge.cpp
TestBase64.cpp AK: Stop using DeprecatedString in Base64 encoding 2022-12-20 10:34:19 +01:00
TestBinaryHeap.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestBinarySearch.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestBitCast.cpp
TestBitmap.cpp AK+Everywhere: Replace all Bitmap::must_create() uses with ::create() 2022-12-22 15:48:53 +01:00
TestBitStream.cpp Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
TestBuiltinWrappers.cpp
TestByteBuffer.cpp AK: Allow Vector<ByteBuffer>::contains_slow to accept (Readonly)Bytes 2023-02-10 22:18:19 +00:00
TestCharacterTypes.cpp
TestChecked.cpp Tests: Add tests for Checked<> decrement operator 2022-12-08 07:20:14 -05:00
TestCircularBuffer.cpp AK+Test: Fix a logic error in CircularBuffer::offset_of() 2023-01-15 23:23:24 +00:00
TestCircularDeque.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestCircularQueue.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestComplex.cpp
TestDeprecatedString.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
TestDisjointChunks.cpp AK: Remove try_ prefix from FixedArray creation functions 2023-01-28 22:41:36 +01:00
TestDistinctNumeric.cpp AK: Fix typo in -= operator of DistinctNumeric 2023-01-06 12:01:46 +01:00
TestDoublyLinkedList.cpp
TestEndian.cpp AK: Add tests for LittleEndian<enum class> 2022-12-28 22:27:19 -05:00
TestEnumBits.cpp
TestFind.cpp
TestFixedArray.cpp
TestFixedPoint.cpp AK: Print leading zeroes after the dot for FixedPoint numbers 2023-01-24 13:24:21 +01:00
TestFloatingPoint.cpp
TestFloatingPointParsing.cpp AK: Remove i686 support 2022-12-28 11:53:41 +01:00
TestFlyString.cpp AK: Implement FlyString for the new String class 2023-01-12 11:23:58 +01:00
TestFormat.cpp AK: Add formatters for Span<T> and Span<T const> 2022-12-08 17:14:48 +01:00
TestGenericLexer.cpp
TestHashFunctions.cpp AK: Rename double_hash to rehash_for_collision 2023-01-21 10:36:14 +01:00
TestHashMap.cpp AK: Define HashMap::take to find and remove a value from the map 2023-02-02 19:14:00 +00:00
TestHashTable.cpp AK: Reimplement HashTable with smart linear probing 2023-02-17 22:29:51 -07:00
TestHex.cpp
TestIndexSequence.cpp
TestInsertionSort.cpp AK: Introduce cutoff to insertion sort for Quicksort 2022-12-12 15:03:57 +00:00
TestIntegerMath.cpp
TestIntrusiveList.cpp
TestIntrusiveRedBlackTree.cpp
TestIPv4Address.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
TestIPv6Address.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
TestJSON.cpp Tests: Replace uses of JsonObject::get_deprecated()/get_ptr() 2023-01-26 09:57:14 -05:00
TestLEB128.cpp AK: Remove the fallible constructor from FixedMemoryStream 2023-02-08 17:44:32 +00:00
TestLexicalPath.cpp AK: Create relative path even if prefix is not an ancestor of the path 2022-12-14 15:11:03 +00:00
TestMACAddress.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
TestMemory.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestMemoryStream.cpp LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
TestNeverDestroyed.cpp
TestNonnullRefPtr.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestNumberFormat.cpp AK+Tests: Add a test for formatting numbers in base 10 units 2023-01-02 20:11:18 +00:00
TestOptional.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestOwnPtr.cpp AK+Everywhere: Move custom deleter capability to OwnPtr 2022-12-17 16:00:08 -05:00
TestPrint.cpp
TestQueue.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestQuickSelect.cpp AK: Testing for AK::quickselect_inline 2023-02-03 19:04:15 +01:00
TestQuickSort.cpp
TestRedBlackTree.cpp
TestRefPtr.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestSIMD.cpp AK: Add AK::SIMD::exp_approximate 2023-02-18 01:45:00 +01:00
TestSinglyLinkedList.cpp AK: Combine SinglyLinkedList and SinglyLinkedListWithCount 2023-01-02 20:13:24 +00:00
TestSourceGenerator.cpp
TestSourceLocation.cpp
TestSpan.cpp Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
TestStack.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestStatistics.cpp AK: Add thresholds to quickselect_inline and Statistics::Median 2023-02-03 19:04:15 +01:00
TestStdLibExtras.cpp
TestString.cpp LibUnicode: Fix typos causing text segmentation on mid-word punctuation 2023-02-15 12:36:47 +01:00
TestStringFloatingPointConversions.cpp
TestStringUtils.cpp AK: Ensure string types are actually considered hash-compatible 2023-02-02 19:14:00 +00:00
TestStringView.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestTime.cpp AK: Reimplement comparisons on AK::Time using operator<=> 2023-01-07 14:51:04 +01:00
TestTrie.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestTuple.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestTypedTransfer.cpp
TestTypeTraits.cpp Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
TestUFixedBigInt.cpp Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
TestURL.cpp AK+Tests+LibWeb: Make URL::complete_url() take a StringView 2023-02-15 12:48:26 -05:00
TestUtf8.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TestUtf16.cpp AK: Add Utf16View::to_utf8 to convert the view to a UTF-8 AK::String 2023-01-09 23:00:24 +00:00
TestVariant.cpp AK: Specialize TypeList for Variant types 2022-12-26 09:36:16 +01:00
TestVector.cpp Tests: Add a few tests to verify vectors are using inline storage 2023-02-11 00:03:14 +01:00
TestWeakPtr.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00