void InsertRange_throws_if_invalid_input() { var instructions = GetInstructions(); InstructionList list; list = new InstructionList(Array.Empty <Instruction>()); Assert.Throws <ArgumentOutOfRangeException>(() => list.InsertRange(GetValue(-1), instructions)); Assert.Throws <ArgumentOutOfRangeException>(() => list.InsertRange(GetValue(1), instructions)); Assert.Throws <ArgumentNullException>(() => list.InsertRange(GetValue(0), null)); list = new InstructionList(instructions); Assert.Throws <ArgumentOutOfRangeException>(() => list.InsertRange(GetValue(-1), instructions)); Assert.Throws <ArgumentOutOfRangeException>(() => list.InsertRange(GetValue(int.MinValue), instructions)); Assert.Throws <ArgumentOutOfRangeException>(() => list.InsertRange(GetValue(int.MaxValue), instructions)); Assert.Throws <ArgumentOutOfRangeException>(() => list.InsertRange(GetValue(list.Count + 1), instructions)); Assert.Throws <ArgumentNullException>(() => list.InsertRange(GetValue(0), null)); }
void InsertRange_works(int index, InstructionList list, IEnumerable <Instruction> inserted, Instruction[] expected) { list.InsertRange(index, inserted); Assert.Equal(expected.Length, list.Count); Assert.True(expected.Length <= list.Capacity); var listElems = new Instruction[list.Count]; list.CopyTo(listElems); AssertEqual(expected, listElems); }