public void TestCardinality()
        {
            var strategy = new ProportionSubsetSelectionStrategy(0.1, RandomDefaults.CreateRandomSource());

            for (int i = 0; i < 100; i++)
            {
                int[] idxArr = strategy.SelectSubset(i);
                int   expectedCardinalityMin = (int)Math.Floor(i * 0.1);
                int   expectedCardinalityMax = (int)Math.Ceiling(i * 0.1);
                Assert.IsTrue(idxArr.Length >= expectedCardinalityMin && idxArr.Length <= expectedCardinalityMax);
            }
        }
        public void TestUniqueness()
        {
            var strategy = new ProportionSubsetSelectionStrategy(0.66, RandomDefaults.CreateRandomSource());

            for (int i = 0; i < 20; i++)
            {
                int[]         idxArr = strategy.SelectSubset(50);
                HashSet <int> idxSet = new HashSet <int>();

                for (int j = 0; j < idxArr.Length; j++)
                {
                    int val = idxArr[j];
                    Assert.IsFalse(idxSet.Contains(val));
                    idxSet.Add(val);
                }
            }
        }
Exemple #3
0
    public void SelectSubset_Uniqueness()
    {
        IRandomSource rng = RandomDefaults.CreateRandomSource();

        var strategy = new ProportionSubsetSelectionStrategy(0.66);

        for (int i = 0; i < 20; i++)
        {
            int[]         idxArr = strategy.SelectSubset(50, rng);
            HashSet <int> idxSet = new();

            for (int j = 0; j < idxArr.Length; j++)
            {
                int val = idxArr[j];
                Assert.DoesNotContain(val, idxSet);
                idxSet.Add(val);
            }
        }
    }