private static void VerifyGetBytes(Encoding encoding, string source, int index, int count, byte[] bytes, int byteIndex, byte[] expectedBytes) { byte[] originalBytes = (byte[])bytes.Clone(); if (index == 0 && count == source.Length) { // Use GetBytes(string) byte[] stringResultBasic = encoding.GetBytes(source); VerifyGetBytes(stringResultBasic, 0, stringResultBasic.Length, originalBytes, expectedBytes); // Use GetBytes(char[]) byte[] charArrayResultBasic = encoding.GetBytes(source.ToCharArray()); VerifyGetBytes(charArrayResultBasic, 0, charArrayResultBasic.Length, originalBytes, expectedBytes); } // Use GetBytes(char[], int, int) byte[] charArrayResultAdvanced = encoding.GetBytes(source.ToCharArray(), index, count); VerifyGetBytes(charArrayResultAdvanced, 0, charArrayResultAdvanced.Length, originalBytes, expectedBytes); // Use GetBytes(string, int, int, byte[], int) byte[] stringBytes = (byte[])bytes.Clone(); int stringByteCount = encoding.GetBytes(source, index, count, stringBytes, byteIndex); VerifyGetBytes(stringBytes, byteIndex, stringByteCount, originalBytes, expectedBytes); EncodingHelpers.AreEqual(expectedBytes.Length, stringByteCount); // Use GetBytes(char[], int, int, byte[], int) byte[] charArrayBytes = (byte[])bytes.Clone(); int charArrayByteCount = encoding.GetBytes(source.ToCharArray(), index, count, charArrayBytes, byteIndex); VerifyGetBytes(charArrayBytes, byteIndex, charArrayByteCount, originalBytes, expectedBytes); EncodingHelpers.AreEqual(expectedBytes.Length, charArrayByteCount); }
private static void GetString(Encoding encoding, byte[] bytes, int index, int count, string expected) { if (index == 0 && count == bytes.Length) { // Use GetString(byte[]) EncodingHelpers.AreEqual(expected, encoding.GetString(bytes)); } // Use GetString(byte[], int, int) EncodingHelpers.AreEqual(expected, encoding.GetString(bytes, index, count)); }
private static void GetByteCount(Encoding encoding, string chars, int index, int count, int expected) { char[] charArray = chars.ToCharArray(); if (index == 0 && count == chars.Length) { // Use GetByteCount(string) or GetByteCount(char[]) EncodingHelpers.AreEqual(expected, encoding.GetByteCount(chars)); EncodingHelpers.AreEqual(expected, encoding.GetByteCount(charArray)); } // Use GetByteCount(char[], int, int) EncodingHelpers.AreEqual(expected, encoding.GetByteCount(charArray, index, count)); }
private static void VerifyGetChars(Encoding encoding, byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, char[] expectedChars) { char[] originalChars = (char[])chars.Clone(); // Use GetChars(byte[]) if (byteIndex == 0 && byteCount == bytes.Length) { char[] resultBasic = encoding.GetChars(bytes); VerifyGetChars(resultBasic, 0, resultBasic.Length, originalChars, expectedChars); } // Use GetChars(byte[], int, int) char[] resultAdvanced = encoding.GetChars(bytes, byteIndex, byteCount); VerifyGetChars(resultAdvanced, 0, resultAdvanced.Length, originalChars, expectedChars); // Use GetChars(byte[], int, int, char[], int) char[] byteChars = (char[])chars.Clone(); int charCount = encoding.GetChars(bytes, byteIndex, byteCount, byteChars, charIndex); VerifyGetChars(byteChars, charIndex, charCount, originalChars, expectedChars); EncodingHelpers.AreEqual(expectedChars.Length, charCount); }