diff --git a/UnicodeInformation.Builder/Properties/AssemblyInfo.cs b/UnicodeInformation.Builder/Properties/AssemblyInfo.cs
index fcc4038..685b1f8 100644
--- a/UnicodeInformation.Builder/Properties/AssemblyInfo.cs
+++ b/UnicodeInformation.Builder/Properties/AssemblyInfo.cs
@@ -13,6 +13,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
+#if DEBUG
+[assembly: InternalsVisibleTo("UnicodeInformation.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100711da5e71bb2208797ed36597e628c6bf6541b6c157ede943539d19de5104763bd2f42d8c0233ea8fbe7e782d4e2d29c3706a8e8dc1cfa78faabec946a167f7b2b1d396d17a85839ad96f2be930c0efaa893c8b9b6a665bf50ca569b56b9eabf3a69e8274723f85e9d4c3eea1e53dcbbb29a74c78c305e447917daaa6593f1c2")]
+#endif
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
diff --git a/UnicodeInformation.Tests/UnicodeDataManagerTests.cs b/UnicodeInformation.Tests/UnicodeDataManagerTests.cs
index 209eb9f..578527f 100644
--- a/UnicodeInformation.Tests/UnicodeDataManagerTests.cs
+++ b/UnicodeInformation.Tests/UnicodeDataManagerTests.cs
@@ -5,6 +5,7 @@ using System.Net;
using System.IO;
using System.IO.Compression;
using System.Unicode.Builder;
+using System.Text;
namespace System.Unicode.Tests
{
@@ -61,5 +62,25 @@ namespace System.Unicode.Tests
Assert.AreEqual((int)'\t', data.Get('\t').CodePointRange.FirstCodePoint);
}
}
+
+#if DEBUG
+ [TestMethod]
+ public void TestCodePointEncoding()
+ {
+ using (var stream = new MemoryStream(4))
+ using (var writer = new BinaryWriter(stream, Encoding.UTF8, true))
+ using (var reader = new BinaryReader(stream, Encoding.UTF8, true))
+ {
+ for (int i = 0; i <= 0x10FFFF; ++i)
+ {
+ writer.WriteCodePoint(i);
+ writer.Flush();
+ stream.Position = 0;
+ Assert.AreEqual(i, UnicodeData.ReadCodePoint(reader));
+ stream.Position = 0;
+ }
+ }
+ }
+#endif
}
}
diff --git a/UnicodeInformation.Tests/UnicodeInformation.Tests.csproj b/UnicodeInformation.Tests/UnicodeInformation.Tests.csproj
index 4faadbb..4f98d32 100644
--- a/UnicodeInformation.Tests/UnicodeInformation.Tests.csproj
+++ b/UnicodeInformation.Tests/UnicodeInformation.Tests.csproj
@@ -34,6 +34,12 @@
prompt
4
+
+ true
+
+
+ ..\System.Unicode.snk
+
@@ -67,6 +73,11 @@
UnicodeInformation
+
+
+ System.Unicode.snk
+
+
diff --git a/UnicodeInformation/Properties/AssemblyInfo.cs b/UnicodeInformation/Properties/AssemblyInfo.cs
index b9a8bc1..33459fd 100644
--- a/UnicodeInformation/Properties/AssemblyInfo.cs
+++ b/UnicodeInformation/Properties/AssemblyInfo.cs
@@ -16,6 +16,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguage("en")]
[assembly: InternalsVisibleTo("UnicodeInformation.Builder, PublicKey=0024000004800000940000000602000000240000525341310004000001000100711da5e71bb2208797ed36597e628c6bf6541b6c157ede943539d19de5104763bd2f42d8c0233ea8fbe7e782d4e2d29c3706a8e8dc1cfa78faabec946a167f7b2b1d396d17a85839ad96f2be930c0efaa893c8b9b6a665bf50ca569b56b9eabf3a69e8274723f85e9d4c3eea1e53dcbbb29a74c78c305e447917daaa6593f1c2")]
+#if DEBUG
+[assembly: InternalsVisibleTo("UnicodeInformation.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100711da5e71bb2208797ed36597e628c6bf6541b6c157ede943539d19de5104763bd2f42d8c0233ea8fbe7e782d4e2d29c3706a8e8dc1cfa78faabec946a167f7b2b1d396d17a85839ad96f2be930c0efaa893c8b9b6a665bf50ca569b56b9eabf3a69e8274723f85e9d4c3eea1e53dcbbb29a74c78c305e447917daaa6593f1c2")]
+#endif
// Version information for an assembly consists of the following four values:
//
diff --git a/UnicodeInformation/UnicodeData.cs b/UnicodeInformation/UnicodeData.cs
index 02735b2..99d6d57 100644
--- a/UnicodeInformation/UnicodeData.cs
+++ b/UnicodeInformation/UnicodeData.cs
@@ -87,7 +87,11 @@ namespace System.Unicode
// return reader.ReadByte() | ((reader.ReadByte() | (reader.ReadByte() << 8)) << 8);
//}
+#if DEBUG
+ internal static int ReadCodePoint(BinaryReader reader)
+#else
private static int ReadCodePoint(BinaryReader reader)
+#endif
{
byte b = reader.ReadByte();