MCPcopy Create free account
hub / github.com/catboost/catboost / TestMergeFromBuffer

Method TestMergeFromBuffer

library/cpp/containers/comptrie/comptrie_ut.cpp:886–930  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

884}
885
886void TCompactTrieTest::TestMergeFromBuffer() {
887 TArrayWithSizeHolder<char> buffer1;
888 {
889 TCompactTrieBuilder<> b;
890 b.Add("aaaaa", 1);
891 b.Add("bbbbb", 2);
892 b.Add("ccccc", 3);
893 buffer1.Resize(b.MeasureByteSize());
894 TMemoryOutput out(buffer1.Get(), buffer1.Size());
895 b.Save(out);
896 }
897
898 TArrayWithSizeHolder<char> buffer2;
899 {
900 TCompactTrieBuilder<> b;
901 b.Add("aaaaa", 10);
902 b.Add("bbbbb", 20);
903 b.Add("ccccc", 30);
904 b.Add("xxxxx", 40);
905 b.Add("yyyyy", 50);
906 buffer2.Resize(b.MeasureByteSize());
907 TMemoryOutput out(buffer2.Get(), buffer2.Size());
908 b.Save(out);
909 }
910
911 {
912 TCompactTrieBuilder<> b;
913 UNIT_ASSERT(b.AddSubtreeInBuffer("com.", std::move(buffer1)));
914 UNIT_ASSERT(b.Add("org.upyachka", 42));
915 UNIT_ASSERT(b.AddSubtreeInBuffer("ru.", std::move(buffer2)));
916 TUnbufferedFileOutput out(GetSystemTempDir() + "/TCompactTrieTest-TestMergeFromBuffer-res");
917 b.Save(out);
918 }
919
920 TCompactTrie<> trie(TBlob::FromFileSingleThreaded(GetSystemTempDir() + "/TCompactTrieTest-TestMergeFromBuffer-res"));
921 UNIT_ASSERT_VALUES_EQUAL(10u, trie.Get("ru.aaaaa"));
922 UNIT_ASSERT_VALUES_EQUAL(20u, trie.Get("ru.bbbbb"));
923 UNIT_ASSERT_VALUES_EQUAL(40u, trie.Get("ru.xxxxx"));
924 UNIT_ASSERT_VALUES_EQUAL(42u, trie.Get("org.upyachka"));
925 UNIT_ASSERT_VALUES_EQUAL(1u, trie.Get("com.aaaaa"));
926 UNIT_ASSERT_VALUES_EQUAL(2u, trie.Get("com.bbbbb"));
927 UNIT_ASSERT_VALUES_EQUAL(3u, trie.Get("com.ccccc"));
928
929 unlink((GetSystemTempDir() + "/TCompactTrieTest-TestMergeFromBuffer-res").data());
930}
931
932void TCompactTrieTest::TestUnique() {
933 TestUniqueImpl(false);

Callers

nothing calls this directly

Calls 10

GetSystemTempDirFunction · 0.85
AddSubtreeInBufferMethod · 0.80
moveFunction · 0.50
AddMethod · 0.45
ResizeMethod · 0.45
MeasureByteSizeMethod · 0.45
GetMethod · 0.45
SizeMethod · 0.45
SaveMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected