Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

WordsTests.gen.cs 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. //------------------------------------------------------------------------------
  2. // <auto-generated>
  3. // This code was generated by a tool.
  4. //
  5. // TextTransform Samples/Packages/com.unity.collections/Unity.Collections.Tests/WordsTests.tt
  6. //
  7. // Changes to this file may cause incorrect behavior and will be lost if
  8. // the code is regenerated.
  9. // </auto-generated>
  10. //------------------------------------------------------------------------------
  11. #if !UNITY_DOTSPLAYER
  12. using System;
  13. using System.Globalization;
  14. using System.Threading;
  15. using NUnit.Framework;
  16. using Unity.Collections;
  17. using Unity.Collections.LowLevel.Unsafe;
  18. namespace Collections.Tests
  19. {
  20. [TestFixture("en-US")]
  21. [TestFixture("da-DK")]
  22. internal class WordsTests
  23. {
  24. CultureInfo testCulture;
  25. CultureInfo backupCulture;
  26. public WordsTests(string culture)
  27. {
  28. testCulture = CultureInfo.CreateSpecificCulture(culture);
  29. }
  30. [SetUp]
  31. public virtual void Setup()
  32. {
  33. backupCulture = Thread.CurrentThread.CurrentCulture;
  34. Thread.CurrentThread.CurrentCulture = testCulture;
  35. //disable obsolete word/numberedwords collections
  36. #pragma warning disable 0618
  37. WordStorage.Setup();
  38. #pragma warning restore 0618
  39. }
  40. [TearDown]
  41. public virtual void TearDown()
  42. {
  43. Thread.CurrentThread.CurrentCulture = backupCulture;
  44. }
  45. unsafe void Wtf8(char[] truncated)
  46. {
  47. byte[] utf8 = new byte[truncated.Length * 4]; // temporary buffer, meant to hold UTF-8 copy of truncated string
  48. char[] output = new char[truncated.Length * 2]; // output of round trip of truncated data through UTF-8 back to UTF-16
  49. fixed(char *t = truncated)
  50. fixed(byte *u = utf8)
  51. fixed(char *o = output)
  52. {
  53. var error = Unicode.Utf16ToUtf8(t, truncated.Length, u, out int utf8_length, utf8.Length); // broken UTF-16 to UTF-8
  54. Assert.AreEqual(ConversionError.None, error);
  55. error = Unicode.Utf8ToUtf16(u, utf8_length, o, out int utf16_length, output.Length); // UTF-8 to broken UTF-16
  56. Assert.AreEqual(ConversionError.None, error);
  57. Assert.AreEqual(utf16_length, truncated.Length); // output should also be truncated by 16 bits,
  58. for (var i = 0; i < truncated.Length; ++i)
  59. Assert.AreEqual(truncated[i], output[i]); // and each 16 bits should match input, too.
  60. }
  61. }
  62. [TestCase("𝒞", TestName = "{m} C")]
  63. [TestCase("𝒯", TestName = "{m} T")]
  64. [TestCase("𝒮", TestName = "{m} S")]
  65. [TestCase("😁", TestName = "{m} GRINNING FACE WITH SMILING EYES")]
  66. [TestCase("😂", TestName = "{m} FACE WITH TEARS OF JOY")]
  67. [TestCase("😃", TestName = "{m} SMILING FACE WITH OPEN MOUTH")]
  68. public void Wtf8TruncatedString(string test)
  69. {
  70. char[] truncated = new char[2];
  71. truncated[0] = ' ';
  72. truncated[1] = test[0];
  73. Wtf8(truncated);
  74. truncated[0] = test[1];
  75. truncated[1] = ' ';
  76. Wtf8(truncated);
  77. }
  78. [TestCase("𝒞", TestName = "{m} C")]
  79. [TestCase("𝒯", TestName = "{m} T")]
  80. [TestCase("𝒮", TestName = "{m} S")]
  81. [TestCase("😁", TestName = "{m} GRINNING FACE WITH SMILING EYES")]
  82. [TestCase("😂", TestName = "{m} FACE WITH TEARS OF JOY")]
  83. [TestCase("😃", TestName = "{m} SMILING FACE WITH OPEN MOUTH")]
  84. public void Wtf8CorruptedString(string test)
  85. {
  86. char[] truncated = new char[3];
  87. truncated[0] = ' ';
  88. truncated[1] = test[0];
  89. truncated[2] = ' ';
  90. Wtf8(truncated);
  91. truncated[0] = ' ';
  92. truncated[1] = test[1];
  93. truncated[2] = ' ';
  94. Wtf8(truncated);
  95. }
  96. [Test]
  97. public unsafe void Utf8EncodeDecode([Range(0, 0xD7FF, 997)] int input_ucs)
  98. {
  99. var converted = new byte[4];
  100. fixed (byte* c = converted)
  101. {
  102. ConversionError error;
  103. int write_length = 0;
  104. error = Unicode.UcsToUtf8(c, ref write_length, converted.Length, new Unicode.Rune{value=input_ucs});
  105. Assert.AreEqual(ConversionError.None, error);
  106. int read_length = 0;
  107. error = Unicode.Utf8ToUcs(out var output_rune, c, ref read_length, write_length);
  108. Assert.AreEqual(ConversionError.None, error);
  109. Assert.AreEqual(write_length, read_length);
  110. Assert.AreEqual(output_rune.value, input_ucs);
  111. }
  112. }
  113. [Test]
  114. public unsafe void Utf16EncodeDecode([Range(0, 0xD7FF,997)] int input_ucs)
  115. {
  116. var converted = new char[2];
  117. fixed (char* c = converted)
  118. {
  119. ConversionError error;
  120. int write_length = 0;
  121. error = Unicode.UcsToUtf16(c, ref write_length, converted.Length, new Unicode.Rune{value = input_ucs});
  122. Assert.AreEqual(ConversionError.None, error);
  123. int read_length = 0;
  124. error = Unicode.Utf16ToUcs(out var output_rune, c, ref read_length, write_length);
  125. Assert.AreEqual(ConversionError.None, error);
  126. Assert.AreEqual(write_length, read_length);
  127. Assert.AreEqual(output_rune.value, input_ucs);
  128. }
  129. }
  130. unsafe void Utf16ToUtf8(string source)
  131. {
  132. var converted = new byte[source.Length * 4]; // UTF-8 text can be up to 2x as long as UTF-16 text
  133. var destination = new char[source.Length];
  134. fixed(byte* c = converted)
  135. fixed(char* s = source)
  136. fixed(char* d = destination)
  137. {
  138. Unicode.Utf16ToUtf8(s, source.Length, c, out var converted_length, converted.Length);
  139. Unicode.Utf8ToUtf16(c, converted_length, d, out var destination_length, destination.Length);
  140. Assert.AreEqual(source, destination);
  141. }
  142. }
  143. [TestCase("The Quick Brown Fox Jumps Over The Lazy Dog")]
  144. [TestCase("Albert osti fagotin ja töräytti puhkuvan melodian.", TestName = "{m}(Finnish)")]
  145. [TestCase("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.", TestName = "{m}(German)")]
  146. [TestCase("איך בלש תפס גמד רוצח עז קטנה?", TestName = "{m}(Hebrew)")]
  147. [TestCase("PORTEZ CE VIEUX WHISKY AU JUGE BLOND QUI FUME.", TestName = "{m}(French)")]
  148. [TestCase("いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす", TestName = "{m}(Japanese)")]
  149. [TestCase("키스의 고유조건은 입술끼리 만나야 하고 특별한 기술은 필요치 않다.", TestName = "{m}(Korean)")]
  150. public unsafe void Utf16ToUtf8BMP(string source)
  151. {
  152. Utf16ToUtf8(source);
  153. }
  154. [TestCase("🌕🌖🌗🌘🌑🌒🌓🌔", TestName = "{m}(MoonPhases)")]
  155. [TestCase("𝒞𝒯𝒮𝒟𝒳𝒩𝒫𝒢", TestName = "{m}(Cursive)")]
  156. public unsafe void Utf16ToUtf8TransBMP(string source)
  157. {
  158. Utf16ToUtf8(source);
  159. }
  160. //disable obsolete word/numberedwords collections
  161. #pragma warning disable 0618
  162. [TestCase("red")]
  163. [TestCase("orange")]
  164. [TestCase("yellow")]
  165. [TestCase("green")]
  166. [TestCase("blue")]
  167. [TestCase("indigo")]
  168. [TestCase("violet")]
  169. [TestCase("紅色", TestName="{m}(Chinese-Red)")]
  170. [TestCase("橙色", TestName="{m}(Chinese-Orange)")]
  171. [TestCase("黄色", TestName="{m}(Chinese-Yellow)")]
  172. [TestCase("绿色", TestName="{m}(Chinese-Green)")]
  173. [TestCase("蓝色", TestName="{m}(Chinese-Blue")]
  174. [TestCase("靛蓝色", TestName="{m}(Chinese-Indigo")]
  175. [TestCase("紫罗兰色", TestName="{m}(Chinese-Violet")]
  176. [TestCase("црвена", TestName = "{m}(Serbian-Red)")]
  177. [TestCase("наранџаста", TestName = "{m}(Serbian-Orange)")]
  178. [TestCase("жута", TestName = "{m}(Serbian-Yellow)")]
  179. [TestCase("зелена", TestName = "{m}(Serbian-Green)")]
  180. [TestCase("плава", TestName = "{m}(Serbian-Blue")]
  181. [TestCase("индиго", TestName = "{m}(Serbian-Indigo")]
  182. [TestCase("љубичаста", TestName = "{m}(Serbian-Violet")]
  183. [TestCase("George Washington")]
  184. [TestCase("John Adams")]
  185. [TestCase("Thomas Jefferson")]
  186. [TestCase("James Madison")]
  187. [TestCase("James Monroe")]
  188. [TestCase("John Quincy Adams")]
  189. [TestCase("Andrew Jackson")]
  190. [TestCase("村上春樹", TestName="{m}(HarukiMurakami)")]
  191. [TestCase("三島 由紀夫", TestName="{m}(MishimaYukio)")]
  192. [TestCase("吉本ばなな", TestName="{m}(YoshimotoBanana)")]
  193. [TestCase("大江健三郎", TestName="{m}(OeKenzaburo)")]
  194. [TestCase("川端 康成", TestName="{m}(KawabataYasunari)")]
  195. [TestCase("桐野夏生", TestName="{m}(TongyeXiasheng)")]
  196. [TestCase("芥川龍之介", TestName="{m}(RyunosukeAkutagawa)")]
  197. [TestCase("로마는 하루아침에 이루어진 것이 아니다", TestName="{m}(Korean - Rome was not made overnight)")]
  198. [TestCase("낮말은 새가 듣고 밤말은 쥐가 듣는다", TestName="{m}(Korean-Proverb2)")]
  199. [TestCase("말을 냇가에 끌고 갈 수는 있어도 억지로 물을 먹일 수는 없다", TestName="{m}(Korean-Proverb3)")]
  200. [TestCase("호랑이에게 물려가도 정신만 차리면 산다", TestName="{m}(Korean-Proverb4)")]
  201. [TestCase("Љубазни фењерџија чађавог лица хоће да ми покаже штос.", TestName = "{m}(Serbian-Pangram)")]
  202. [TestCase("Лако ти је плитку воду замутити и будалу наљутити", TestName = "{m}(Serbian-Proverb)")]
  203. [TestCase("Үнэн үг хэлсэн хүнд ноёд өстэй, үхэр унасан хүнд ноход өстэй.", TestName="{m}(Mongolian-Proverb1)")]
  204. [TestCase("Өнгөрсөн борооны хойноос эсгий нөмрөх.", TestName="{m}(Mongolian-Proverb2)")]
  205. [TestCase("Барын сүүл байснаас батганы толгой байсан нь дээр.", TestName="{m}(Mongolian-Proverb3)")]
  206. [TestCase("Гараар ганц хүнийг дийлэх. Tолгойгоор мянган хүнийг дийлэх.", TestName="{m}(Mongolian-Proverb4)")]
  207. [TestCase("Աղւէսը բերանը խաղողին չի հասնում, ասում է՝ խակ է", TestName="{m}(Armenian-Proverb1)")]
  208. [TestCase("Ամեն փայտ շերեփ չի դառնա, ամեն սար՝ Մասիս", TestName="{m}(Armenian-Proverb2)")]
  209. [TestCase("Արևին ասում է դուրս մի արի՝ ես դուրս եմ եկել", TestName="{m}(Armenian-Proverb3)")]
  210. [TestCase("Գայլի գլխին Աւետարան են կարդում, ասում է՝ շուտ արէ՛ք, գալլէս գնաց", TestName="{m}(Armenian-Proverb4)")]
  211. [TestCase("पृथिव्यां त्रीणी रत्नानि जलमन्नं सुभाषितम्।", TestName="{m}(Hindi-Proverb1)")]
  212. [TestCase("जननी जन्मभुमिस्छ स्वर्गादपि गरीयसि", TestName="{m}(Hindi-Proverb2)")]
  213. [TestCase("न अभिशेको न संस्कारः सिम्हस्य कृयते वनेविक्रमार्जितसत्वस्य स्वयमेव मृगेन्द्रता", TestName="{m}(Hindi-Proverb3)")]
  214. public void WordsWorks(String value)
  215. {
  216. Words s = new Words();
  217. s.SetString(value);
  218. Assert.AreEqual(s.ToString(), value);
  219. }
  220. [TestCase("red")]
  221. [TestCase("orange")]
  222. [TestCase("yellow")]
  223. [TestCase("green")]
  224. [TestCase("blue")]
  225. [TestCase("indigo")]
  226. [TestCase("violet")]
  227. [TestCase("紅色", TestName="{m}(Chinese-Red)")]
  228. [TestCase("橙色", TestName="{m}(Chinese-Orange)")]
  229. [TestCase("黄色", TestName="{m}(Chinese-Yellow)")]
  230. [TestCase("绿色", TestName="{m}(Chinese-Green)")]
  231. [TestCase("蓝色", TestName="{m}(Chinese-Blue")]
  232. [TestCase("靛蓝色", TestName="{m}(Chinese-Indigo")]
  233. [TestCase("紫罗兰色", TestName="{m}(Chinese-Violet")]
  234. [TestCase("црвена", TestName = "{m}(Serbian-Red)")]
  235. [TestCase("наранџаста", TestName = "{m}(Serbian-Orange)")]
  236. [TestCase("жута", TestName = "{m}(Serbian-Yellow)")]
  237. [TestCase("зелена", TestName = "{m}(Serbian-Green)")]
  238. [TestCase("плава", TestName = "{m}(Serbian-Blue")]
  239. [TestCase("индиго", TestName = "{m}(Serbian-Indigo")]
  240. [TestCase("љубичаста", TestName = "{m}(Serbian-Violet")]
  241. [TestCase("George Washington")]
  242. [TestCase("John Adams")]
  243. [TestCase("Thomas Jefferson")]
  244. [TestCase("James Madison")]
  245. [TestCase("James Monroe")]
  246. [TestCase("John Quincy Adams")]
  247. [TestCase("Andrew Jackson")]
  248. [TestCase("村上春樹", TestName="{m}(HarukiMurakami)")]
  249. [TestCase("三島 由紀夫", TestName="{m}(MishimaYukio)")]
  250. [TestCase("吉本ばなな", TestName="{m}(YoshimotoBanana)")]
  251. [TestCase("大江健三郎", TestName="{m}(OeKenzaburo)")]
  252. [TestCase("川端 康成", TestName="{m}(KawabataYasunari)")]
  253. [TestCase("桐野夏生", TestName="{m}(TongyeXiasheng)")]
  254. [TestCase("芥川龍之介", TestName="{m}(RyunosukeAkutagawa)")]
  255. [TestCase("로마는 하루아침에 이루어진 것이 아니다", TestName="{m}(Korean-Proverb1)")]
  256. [TestCase("낮말은 새가 듣고 밤말은 쥐가 듣는다", TestName="{m}(Korean-Proverb2)")]
  257. [TestCase("말을 냇가에 끌고 갈 수는 있어도 억지로 물을 먹일 수는 없다", TestName="{m}(Korean-Proverb3)")]
  258. [TestCase("호랑이에게 물려가도 정신만 차리면 산다", TestName="{m}(Korean-Proverb4)")]
  259. [TestCase("Љубазни фењерџија чађавог лица хоће да ми покаже штос.", TestName = "{m}(Serbian-Pangram)")]
  260. [TestCase("Лако ти је плитку воду замутити и будалу наљутити", TestName = "{m}(Serbian-Proverb)")]
  261. [TestCase("Үнэн үг хэлсэн хүнд ноёд өстэй, үхэр унасан хүнд ноход өстэй.", TestName="{m}(Mongolian-Proverb1)")]
  262. [TestCase("Өнгөрсөн борооны хойноос эсгий нөмрөх.", TestName="{m}(Mongolian-Proverb2)")]
  263. [TestCase("Барын сүүл байснаас батганы толгой байсан нь дээр.", TestName="{m}(Mongolian-Proverb3)")]
  264. [TestCase("Гараар ганц хүнийг дийлэх. Tолгойгоор мянган хүнийг дийлэх.", TestName="{m}(Mongolian-Proverb4)")]
  265. [TestCase("Աղւէսը բերանը խաղողին չի հասնում, ասում է՝ խակ է", TestName="{m}(Armenian-Proverb1)")]
  266. [TestCase("Ամեն փայտ շերեփ չի դառնա, ամեն սար՝ Մասիս", TestName="{m}(Armenian-Proverb2)")]
  267. [TestCase("Արևին ասում է դուրս մի արի՝ ես դուրս եմ եկել", TestName="{m}(Armenian-Proverb3)")]
  268. [TestCase("Գայլի գլխին Աւետարան են կարդում, ասում է՝ շուտ արէ՛ք, գալլէս գնաց", TestName="{m}(Armenian-Proverb4)")]
  269. [TestCase("पृथिव्यां त्रीणी रत्नानि जलमन्नं सुभाषितम्।", TestName="{m}(Hindi-Proverb1)")]
  270. [TestCase("जननी जन्मभुमिस्छ स्वर्गादपि गरीयसि", TestName="{m}(Hindi-Proverb2)")]
  271. [TestCase("न अभिशेको न संस्कारः सिम्हस्य कृयते वनेविक्रमार्जितसत्वस्य स्वयमेव मृगेन्द्रता", TestName="{m}(Hindi-Proverb3)")]
  272. public void AddWorks(String value)
  273. {
  274. Words w = new Words();
  275. Assert.IsFalse(WordStorage.Instance.Contains(value));
  276. Assert.IsTrue(WordStorage.Instance.Entries == 1);
  277. w.SetString(value);
  278. Assert.IsTrue(WordStorage.Instance.Contains(value));
  279. Assert.IsTrue(WordStorage.Instance.Entries == 2);
  280. }
  281. [TestCase("red")]
  282. [TestCase("orange")]
  283. [TestCase("yellow")]
  284. [TestCase("green")]
  285. [TestCase("blue")]
  286. [TestCase("indigo")]
  287. [TestCase("violet")]
  288. [TestCase("紅色", TestName="{m}(Chinese-Red)")]
  289. [TestCase("橙色", TestName="{m}(Chinese-Orange)")]
  290. [TestCase("黄色", TestName="{m}(Chinese-Yellow)")]
  291. [TestCase("绿色", TestName="{m}(Chinese-Green)")]
  292. [TestCase("蓝色", TestName="{m}(Chinese-Blue")]
  293. [TestCase("靛蓝色", TestName="{m}(Chinese-Indigo")]
  294. [TestCase("紫罗兰色", TestName="{m}(Chinese-Violet")]
  295. [TestCase("로마는 하루아침에 이루어진 것이 아니다", TestName="{m}(Korean - Rome was not made overnight)")]
  296. [TestCase("낮말은 새가 듣고 밤말은 쥐가 듣는다", TestName="{m}(Korean-Proverb2)")]
  297. [TestCase("말을 냇가에 끌고 갈 수는 있어도 억지로 물을 먹일 수는 없다", TestName="{m}(Korean-Proverb3)")]
  298. [TestCase("호랑이에게 물려가도 정신만 차리면 산다", TestName="{m}(Korean-Proverb4)")]
  299. public void NumberedWordsWorks(String value)
  300. {
  301. NumberedWords w = new NumberedWords();
  302. Assert.IsTrue(WordStorage.Instance.Entries == 1);
  303. for (var i = 0; i < 100; ++i)
  304. {
  305. w.SetString( value + i);
  306. Assert.IsTrue(WordStorage.Instance.Entries == 2);
  307. }
  308. }
  309. [TestCase("red001")]
  310. [TestCase("orange2")]
  311. [TestCase("yellow001234")]
  312. [TestCase("green")]
  313. [TestCase("紅色002", TestName="{m}(Chinese-Red)")]
  314. [TestCase("橙色0035", TestName="{m}(Chinese-Orange)")]
  315. [TestCase("黄色000234", TestName="{m}(Chinese-Yellow)")]
  316. [TestCase("绿色00003423", TestName="{m}(Chinese-Green)")]
  317. public void WordStorageFixedString32Works(String value)
  318. {
  319. NumberedWords w = new NumberedWords();
  320. FixedString32Bytes fixedString = default;
  321. w.SetString(value);
  322. w.ToFixedString(ref fixedString);
  323. Assert.AreEqual(value, fixedString.ToString());
  324. }
  325. [TestCase("red001")]
  326. [TestCase("orange2")]
  327. [TestCase("yellow001234")]
  328. [TestCase("green")]
  329. [TestCase("紅色002", TestName="{m}(Chinese-Red)")]
  330. [TestCase("橙色0035", TestName="{m}(Chinese-Orange)")]
  331. [TestCase("黄色000234", TestName="{m}(Chinese-Yellow)")]
  332. [TestCase("绿色00003423", TestName="{m}(Chinese-Green)")]
  333. public void WordStorageFixedString64Works(String value)
  334. {
  335. NumberedWords w = new NumberedWords();
  336. FixedString64Bytes fixedString = default;
  337. w.SetString(value);
  338. w.ToFixedString(ref fixedString);
  339. Assert.AreEqual(value, fixedString.ToString());
  340. }
  341. [TestCase("red001")]
  342. [TestCase("orange2")]
  343. [TestCase("yellow001234")]
  344. [TestCase("green")]
  345. [TestCase("紅色002", TestName="{m}(Chinese-Red)")]
  346. [TestCase("橙色0035", TestName="{m}(Chinese-Orange)")]
  347. [TestCase("黄色000234", TestName="{m}(Chinese-Yellow)")]
  348. [TestCase("绿色00003423", TestName="{m}(Chinese-Green)")]
  349. public void WordStorageFixedString128Works(String value)
  350. {
  351. NumberedWords w = new NumberedWords();
  352. FixedString128Bytes fixedString = default;
  353. w.SetString(value);
  354. w.ToFixedString(ref fixedString);
  355. Assert.AreEqual(value, fixedString.ToString());
  356. }
  357. }
  358. }
  359. #pragma warning restore 0618
  360. #endif