@@ -81,7 +81,7 @@ namespace {
81
81
});
82
82
}
83
83
84
- void TestBlockJoinOnUint64 (EJoinKind joinKind) {
84
+ void DoTestBlockJoinOnUint64 (EJoinKind joinKind, size_t blockSize, size_t testSize ) {
85
85
TSetup<false > setup;
86
86
TProgramBuilder& pb = *setup.PgmBuilder ;
87
87
@@ -131,7 +131,6 @@ namespace {
131
131
const auto & holderFactory = graph->GetHolderFactory ();
132
132
auto & ctx = graph->GetContext ();
133
133
134
- constexpr size_t testSize = 256 ;
135
134
TVector<ui64> keys (testSize);
136
135
TVector<ui64> subkeys;
137
136
std::iota (keys.begin (), keys.end (), 1 );
@@ -142,7 +141,6 @@ namespace {
142
141
std::transform (keys.cbegin (), keys.cend (), std::back_inserter (payloads),
143
142
[](const auto & value) { return twoLetterPayloads[value].c_str (); });
144
143
145
- const size_t blockSize = 64 ;
146
144
size_t current = 0 ;
147
145
TDefaultListRepresentation leftListValues;
148
146
while (current < testSize) {
@@ -188,12 +186,19 @@ namespace {
188
186
UNIT_ASSERT (blockLengthDatum.is_scalar ());
189
187
const auto blockLength = blockLengthDatum.scalar_as <arrow::UInt64Scalar>().value ;
190
188
const auto dictSize = std::count_if (dictKeys.cbegin (), dictKeys.cend (),
191
- [](ui64 key) { return key < testSize; });
189
+ [testSize ](ui64 key) { return key < testSize; });
192
190
const auto expectedLength = joinKind == EJoinKind::LeftSemi ? dictSize
193
191
: joinKind == EJoinKind::LeftOnly ? testSize - dictSize
194
192
: -1 ;
195
193
UNIT_ASSERT_VALUES_EQUAL (expectedLength, blockLength);
196
194
}
195
+
196
+ void TestBlockJoinOnUint64 (EJoinKind joinKind) {
197
+ const size_t testSize = 512 ;
198
+ for (size_t blockSize = 8 ; blockSize <= testSize; blockSize <<= 2 ) {
199
+ DoTestBlockJoinOnUint64 (joinKind, blockSize, testSize);
200
+ }
201
+ }
197
202
} // namespace
198
203
199
204
Y_UNIT_TEST_SUITE (TMiniKQLBlockMapJoinTest) {
0 commit comments