Ei kuvausta
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FixedListPlayModeTests.tt 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <#/*THIS IS A T4 FILE - see t4_text_templating.md for what it is and how to run codegen*/#>
  2. <#@ template debug="True" #>
  3. <#@ output extension=".gen.cs" encoding="utf-8" #>
  4. <#@ assembly name="System.Core" #>
  5. <#@ import namespace="System.Globalization" #>
  6. //------------------------------------------------------------------------------
  7. // <auto-generated>
  8. // This code was generated by a tool.
  9. //
  10. // TextTransform Samples/Packages/com.unity.collections/Unity.Collections.Tests.Playmode/FixedListPlayModeTests.tt
  11. //
  12. // These tests require UNITY_DOTS_DEBUG to be enabled.
  13. //
  14. // Changes to this file may cause incorrect behavior and will be lost if
  15. // the code is regenerated.
  16. // </auto-generated>
  17. //------------------------------------------------------------------------------
  18. using System.Collections;
  19. using NUnit.Framework;
  20. using UnityEngine.TestTools;
  21. using System;
  22. using Unity.Collections;
  23. [TestFixture]
  24. internal class FixedListPlaymodeTests
  25. {
  26. [UnityTest]
  27. #if UNITY_EDITOR // standalone only
  28. [Ignore("Test is for standalone builds only")]
  29. #endif
  30. public IEnumerator FixedListPlaymode_AreCollectionsChecksEnabled()
  31. {
  32. #if ENABLE_UNITY_COLLECTIONS_CHECKS
  33. Assert.IsTrue(false, "Collections checks should not be enabled in standalone playmode tests");
  34. #endif
  35. #if !UNITY_DOTS_DEBUG
  36. Assert.IsTrue(false, "UNITY_DOTS_DEBUG should be defined in standalone playmode tests");
  37. #endif
  38. yield break;
  39. }
  40. <#
  41. {
  42. var TYPES = new string[] {"byte", "int", "float"};
  43. var TYPESIZES = new int[] {1, 4, 4};
  44. var SIZES = new int[] {32, 64, 128};
  45. for (var type = 0; type < 3; ++type)
  46. {
  47. for (var size = 0; size < 3; ++size)
  48. {
  49. var BYTES = SIZES[size];
  50. var TYPE = TYPES[type];
  51. var TYPESIZE = TYPESIZES[type];
  52. var MAXLENGTH = BYTES - 2;
  53. var TYPENAME = String.Format("FixedList{0}Bytes", BYTES);
  54. var TYPENAME_IDENTIFIER = String.Format("FixedList{0}{1}Playmode_", BYTES, new CultureInfo("en-US").TextInfo.ToTitleCase(TYPE));
  55. var EXPECTEDCAPACITY = (BYTES - 2) / TYPESIZE;
  56. var BUFFERTYPE = String.Format("FixedBytes{0}", MAXLENGTH);
  57. #>
  58. [UnityTest]
  59. public IEnumerator <#=TYPENAME_IDENTIFIER #>GenericHasExpectedCapacity()
  60. {
  61. var list = new <#=TYPENAME #><<#=TYPE#>>();
  62. var expectedCapacity = list.Capacity;
  63. for(int i = 0; i < expectedCapacity; ++i)
  64. list.Add((<#=TYPE #>)i);
  65. Assert.Throws<IndexOutOfRangeException> (() => { list.Add((<#=TYPE #>)expectedCapacity); });
  66. yield break;
  67. }
  68. <#
  69. }
  70. for (var size = 0; size < 3; ++size)
  71. {
  72. var BYTES = SIZES[size];
  73. var TYPE = TYPES[type];
  74. var TYPESIZE = TYPESIZES[type];
  75. var MAXLENGTH = BYTES - 2;
  76. var TYPENAME = String.Format("FixedList{0}Bytes<{1}>", BYTES, TYPE);
  77. var TYPENAME_IDENTIFIER = String.Format("FixedList{0}{1}Playmode_", BYTES, new CultureInfo("en-US").TextInfo.ToTitleCase(TYPE));
  78. var EXPECTEDCAPACITY = (BYTES - 2) / TYPESIZE;
  79. #>
  80. [UnityTest]
  81. public IEnumerator <#=TYPENAME_IDENTIFIER #>HasExpectedCapacity()
  82. {
  83. var list = new <#=TYPENAME #>();
  84. var expectedCapacity = list.Capacity;
  85. for(int i = 0; i < expectedCapacity; ++i)
  86. list.Add((<#=TYPE #>)i);
  87. Assert.Throws<IndexOutOfRangeException> (() => { list.Add((<#=TYPE #>)expectedCapacity); });
  88. yield break;
  89. }
  90. <#
  91. foreach (var OTHERBYTES in SIZES)
  92. {
  93. if (OTHERBYTES != BYTES)
  94. {
  95. var OTHERCAPACITY = (OTHERBYTES - 2) / TYPESIZE;
  96. var OTHERTYPENAME = String.Format("FixedList{0}Bytes<{1}>", OTHERBYTES, TYPE);
  97. var OTHERTYPENAME_IDENTIFIER = String.Format("_FixedList{0}{1}", OTHERBYTES, new CultureInfo("en-US").TextInfo.ToTitleCase(TYPE));
  98. if (EXPECTEDCAPACITY > OTHERCAPACITY)
  99. {
  100. #>
  101. [UnityTest]
  102. public IEnumerator <#=TYPENAME_IDENTIFIER #>To<#=OTHERTYPENAME_IDENTIFIER #>()
  103. {
  104. var a = new <#=TYPENAME #>();
  105. for(var i = 0; i < <#=EXPECTEDCAPACITY #>; ++i)
  106. a.Add((<#=TYPE #>)i);
  107. <#
  108. WriteLine(
  109. " Assert.Throws<IndexOutOfRangeException> (() => {{ var b = new {0}(a); }} );",
  110. OTHERTYPENAME);
  111. #>
  112. yield break;
  113. }
  114. <#
  115. }
  116. }
  117. }
  118. }
  119. }
  120. }
  121. #>
  122. }