virtual public void TestGetArray()
{
ArrayRandomAccessSource source1 = new ArrayRandomAccessSource(data); // 0 - 99
ArrayRandomAccessSource source2 = new ArrayRandomAccessSource(data); // 100 - 199
ArrayRandomAccessSource source3 = new ArrayRandomAccessSource(data); // 200 - 299
IRandomAccessSource[] inputs = new IRandomAccessSource[] { source1, source2, source3 };
GroupedRandomAccessSource grouped = new GroupedRandomAccessSource(inputs);
byte[] output = new byte[500];
Assert.AreEqual(300, grouped.Get(0, output, 0, 300));
AssertArrayEqual(RangeArray(0, 100), 0, output, 0, 100);
AssertArrayEqual(RangeArray(0, 100), 0, output, 100, 100);
AssertArrayEqual(RangeArray(0, 100), 0, output, 200, 100);
Assert.AreEqual(300, grouped.Get(0, output, 0, 301));
AssertArrayEqual(RangeArray(0, 100), 0, output, 0, 100);
AssertArrayEqual(RangeArray(0, 100), 0, output, 100, 100);
AssertArrayEqual(RangeArray(0, 100), 0, output, 200, 100);
Assert.AreEqual(100, grouped.Get(150, output, 0, 100));
AssertArrayEqual(RangeArray(50, 50), 0, output, 0, 50);
AssertArrayEqual(RangeArray(0, 50), 0, output, 50, 50);
}