Exemplo n.º 1
0
        public static IEnumerable <object[]> GetNotEnoughPretestsTestData()
        {
            //empty array
            yield return(new object[] { new List <TestletItem>(), 1 });

            var noPretestsSet = Enumerable.Range(0, 10)
                                .Select(x => new TestletItem(x.ToString(), TestletItemTypeEnum.Operational))
                                .ToList();

            //no pretests
            yield return(new object[] { noPretestsSet.ToList(), 2 });

            //has pretests, but not enough
            var notEnoughPretestsSet = noPretestsSet.ToList();

            notEnoughPretestsSet[4] = new TestletItem("pretest1", TestletItemTypeEnum.Pretest);

            yield return(new object[] { notEnoughPretestsSet.ToList(), 2 });
        }
Exemplo n.º 2
0
        public void PretestsRandomizationAlgorithm(int totalCount, int pretestsCount, int startWithNPretests, int seed)
        {
            //use seed so tests are not fragile
            var random    = new Random(seed);
            var algorithm = new SomePretestsFirstRandomization(startWithNPretests, random);

            var testData = Enumerable.Range(0, totalCount)
                           .Select(x => new TestletItem(x.ToString(), TestletItemTypeEnum.Operational))
                           .ToList();

            for (var i = pretestsCount - 1; i >= 0; i--)
            {
                testData[i] = new TestletItem("pretest" + i, TestletItemTypeEnum.Pretest);
            }

            var randomized = algorithm.Randomize(testData);

            Assert.Equal(totalCount, randomized.Count);
            Assert.True(totalCount == randomized.Distinct().Count(), "Some values are used more than once");
            Assert.True(randomized.Take(startWithNPretests).All(x => x.TestletItemType == TestletItemTypeEnum.Pretest), "Doesn't start with proper number of pretests");
            Assert.False(randomized.SequenceEqual(testData), "Randomized sequence equals source data");
        }