public static unsafe void Ctor_CharPtr_Int_Int_Invalid()
{
var valueArray = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '\0' };
Assert.Throws<ArgumentOutOfRangeException>("startIndex", () =>
{
fixed (char* value = valueArray) { new string(value, -1, 8); } // Start index < 0
});
Assert.Throws<ArgumentOutOfRangeException>("length", () =>
{
fixed (char* value = valueArray) { new string(value, 0, -1); } // Length < 0
});
Assert.Throws<ArgumentOutOfRangeException>("ptr", () => new string((char*)null, 0, 1)); // null ptr with non-zero length
}