[ML] @kbn/ml-random-sampler-utils: Fix random sampler threshold (#154803)

Fixes the check `isValidProbability` to include `0.5`.
This commit is contained in:
Walter Rafelsberger 2023-04-18 17:01:36 +02:00 committed by GitHub
parent e0002476ef
commit 47f0eb8803
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 7 deletions

View file

@ -14,22 +14,28 @@ describe('createRandomSamplerWrapper', () => {
},
};
const wrappedTestAggs = {
const getWrappedTestAggs = (probability: number) => ({
sample: {
random_sampler: {
probability: 0.01,
probability,
},
aggs: testAggs,
},
};
});
it('returns the un-sampled aggregation as-is for a probability of 1', () => {
expect(createRandomSamplerWrapper({ probability: 1 }).wrap(testAggs)).toEqual(testAggs);
});
it('returns wrapped random sampler aggregation for probability of 0.5', () => {
expect(createRandomSamplerWrapper({ probability: 0.5 }).wrap(testAggs)).toEqual(
getWrappedTestAggs(0.5)
);
});
it('returns wrapped random sampler aggregation for probability of 0.01', () => {
expect(createRandomSamplerWrapper({ probability: 0.01 }).wrap(testAggs)).toEqual(
wrappedTestAggs
getWrappedTestAggs(0.01)
);
});
@ -39,9 +45,9 @@ describe('createRandomSamplerWrapper', () => {
expect(randomSamplerWrapper.wrap(testAggs)).toEqual(testAggs);
});
it('returns probability of 0.01 and does not wrap when used for 5000000 docs', () => {
it('returns probability of 0.01 and does wrap when used for 5000000 docs', () => {
const randomSamplerWrapper = createRandomSamplerWrapper({ totalNumDocs: 5000000 });
expect(randomSamplerWrapper.probability).toBe(0.01);
expect(randomSamplerWrapper.wrap(testAggs)).toEqual(wrappedTestAggs);
expect(randomSamplerWrapper.wrap(testAggs)).toEqual(getWrappedTestAggs(0.01));
});
});

View file

@ -40,7 +40,7 @@ type RandomSamplerOptions = RandomSamplerOptionProbability | RandomSamplerOption
* @returns {boolean}
*/
export function isValidProbability(p: unknown): p is number {
return typeof p === 'number' && p > 0 && p < 0.5;
return typeof p === 'number' && p > 0 && p <= 0.5;
}
/**