async function buildBanditDataForTest()

in src/server/selection/banditData.ts [129:151]


async function buildBanditDataForTest(test: BanditTestConfig): Promise<BanditData> {
    if (test.variantNames.length === 0) {
        // No variants have been added to the test yet
        return {
            testName: test.testName,
            sortedVariants: [],
        };
    }

    const samples = await getBanditSamplesForTest(test.testName, test.channel, test.sampleCount);

    if (samples.length < MINIMUM_SAMPLES) {
        return getDefaultWeighting(test);
    }

    const variantMeans = calculateMeanPerVariant(samples, test);
    const variantsSortedByMeanDescending = variantMeans.sort((a, b) => b.mean - a.mean);

    return {
        testName: test.testName,
        sortedVariants: variantsSortedByMeanDescending,
    };
}