protected override async Task <Result?> Explore() { var distinctValuesResult = await distinctValuesProvider.ResultAsync; if (distinctValuesResult == null) { return(null); } var config = await sampleValuesGeneratorConfigProvider.ResultAsync; if (config == null) { return(null); } var sampleValues = Enumerable.Empty <JsonElement>(); if (config.CategoricalSampling) { var rand = new Random(Environment.TickCount); var allValues = ValueWithCountList <JsonElement> .FromValueWithCountEnum( distinctValuesResult .DistinctRows .Where(r => !r.IsSuppressed) .Select(r => r.IsNull ? ValueWithCount <JsonElement> .ValueCount(JsonNull, r.Count, r.CountNoise) : r)); sampleValues = Enumerable .Range(0, Context.SamplesToPublish) .Select(_ => allValues.GetRandomValue(rand)); } return(new Result(sampleValues.ToList())); }
public void FindValueTest(int count) { var vals = ValueWithCountList <int> .FromValueWithCountEnum( Enumerable.Range(0, count).Select(i => ValueWithCount <int> .ValueCount(i, 1L))); for (var i = 0; i < vals.Count; i++) { Assert.Equal(i, vals.FindValue(i)); } Assert.Throws <ArgumentException>(() => vals.FindValue(count)); Assert.Throws <ArgumentException>(() => vals.FindValue(count + 1)); }
public void FindValueFromEmptyList() { var vals = ValueWithCountList <string> .FromValueWithCountEnum(Enumerable.Empty <ValueWithCount <string> >()); Assert.Throws <InvalidOperationException>(() => vals.FindValue(1)); }