public void Randomize_ShouldGenerateDifferentSequencesEveryTime() { target = new Testlet("testlet", items); var firstResult = target.Randomize(); var secondResult = target.Randomize(); Assert.False(firstResult.SequenceEqual(secondResult)); }
public void Randomize_ShouldGenerateSequenceWithCorrectOrder() { target = new Testlet("testlet", items); var result = target.Randomize(); Assert.True(items.All(item => result.Contains(item))); var resultItemsWithPredefinedPosition = result.Take(TestletConstants.NumberOfPretestItemsWithPredefinedPosition); Assert.True(resultItemsWithPredefinedPosition.All(item => item.ItemType == ItemTypeEnum.Pretest)); var remainingItems = items.Skip(TestletConstants.NumberOfPretestItemsWithPredefinedPosition); var remainingResultItems = result.Skip(TestletConstants.NumberOfPretestItemsWithPredefinedPosition); Assert.False(remainingItems.SequenceEqual(remainingResultItems)); }
public void Randomize_WorksWithTooSmallCollection() { var sourceItems = new List <Item> { new Item { ItemId = "item 1", ItemType = ItemTypeEnum.Operational }, new Item { ItemId = "item 2", ItemType = ItemTypeEnum.Pretest } }; target = new Testlet("testlet", sourceItems); target.Randomize(); // Items should be shuffled, but for just 2 elements result of randomize will often produce the same sequence // That's why only check that it works without exceptions Assert.Pass(); }
public void Randomize_WorksWithEmptyItemsList() { target = new Testlet("testlet", new List <Item>()); target.Randomize(); Assert.Pass(); }