public void copy_to_throws_if_args_are_not_valid()
{
var snapshot = Create(10, 0, 10);
var dst = new byte[5];
Assert.Throws<ArgumentNullException>(() => snapshot.CopyTo(0, null, 0, 0));
// srcOffset
Assert.Throws<ArgumentException>(() => snapshot.CopyTo(10, dst, 0, 1));
// dstOffset
Assert.Throws<ArgumentException>(() => snapshot.CopyTo(0, dst, 5, 1));
// count
Assert.Throws<ArgumentException>(() => snapshot.CopyTo(0, dst, 0, 6));
// dstOffset + count
Assert.Throws<ArgumentException>(() => snapshot.CopyTo(0, dst, 4, 2));
}