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

Function TestSubsetFeatures

catboost/libs/data/ut/objects_ut.cpp:407–492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

405
406
407 void TestSubsetFeatures(
408 TMaybe<TArraySubsetIndexing<ui32>> subsetForGetSubset,
409 TMaybe<EObjectsOrder> objectsOrderForGetSubset,
410 const TObjectsGrouping& expectedObjectsGrouping,
411 const TCommonObjectsData& commonData,
412
413 // SubsetIndexing is not checked, only TRawObjectsDataProvider's fields
414 const TCommonObjectsData& expectedCommonData,
415 const TVector<TVector<float>>& srcFloatFeatures,
416 const TVector<TVector<float>>& subsetFloatFeatures,
417 const TVector<THashMap<ui32, TString>>& catFeaturesHashToString,
418 const TVector<TVector<ui32>>& srcCatFeatures,
419 const TVector<TVector<ui32>>& subsetCatFeatures
420 ) {
421 NPar::TLocalExecutor localExecutor;
422 localExecutor.RunAdditionalThreads(2);
423
424 // (use float, use cat) pairs
425 for (auto useFeatureTypes : {
426 std::make_pair(true, false),
427 std::make_pair(false, true),
428 std::make_pair(true, true)
429 }) {
430 auto objectsDataProvider = GetMaybeSubsetDataProvider(
431 CreateRawObjectsDataProvider(
432 srcFloatFeatures,
433 srcCatFeatures,
434 catFeaturesHashToString,
435 commonData,
436 useFeatureTypes,
437 &localExecutor
438 ),
439 subsetForGetSubset,
440 objectsOrderForGetSubset,
441 &localExecutor
442 );
443
444 ui32 featureCount = 0;
445 TVector<ui32> catFeatureIndices;
446
447 UNIT_ASSERT_EQUAL(expectedObjectsGrouping, *objectsDataProvider.GetObjectsGrouping());
448
449 if (useFeatureTypes.first) {
450 featureCount += srcFloatFeatures.size();
451
452 for (auto i : xrange(subsetFloatFeatures.size())) {
453 UNIT_ASSERT(
454 Equal<float>(
455 *(*objectsDataProvider.GetFloatFeature(i))->ExtractValues(&localExecutor),
456 subsetFloatFeatures[i]
457 )
458 );
459 }
460 }
461 if (useFeatureTypes.second) {
462 catFeatureIndices.resize(srcCatFeatures.size());
463 std::iota(catFeatureIndices.begin(), catFeatureIndices.end(), featureCount);
464

Callers 1

Y_UNIT_TESTFunction · 0.85

Calls 15

xrangeFunction · 0.85
GetTaskTypesFunction · 0.85
Y_UNUSEDFunction · 0.85
TFeatureGroupsDataClass · 0.85
TCompressedArrayClass · 0.85
GenerateSrcHashedCatDataFunction · 0.85
NothingFunction · 0.85
RunAdditionalThreadsMethod · 0.80
GetTimestampMethod · 0.80

Tested by

no test coverage detected