TransformTest.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. using System.Collections;
  2. using NUnit.Framework;
  3. using UnityEngine;
  4. using UnityEngine.TestTools;
  5. using UnityEngine.TestTools.Utils;
  6. using LitMotion.Extensions;
  7. namespace LitMotion.Tests.Runtime
  8. {
  9. public class TransformTest
  10. {
  11. Transform target;
  12. const float Duration = 1f;
  13. [OneTimeSetUp]
  14. public void OneTimeSetup()
  15. {
  16. target = new GameObject("Target").transform;
  17. }
  18. [OneTimeTearDown]
  19. public void OneTimeTearDown()
  20. {
  21. Object.Destroy(target.gameObject);
  22. }
  23. [UnityTest]
  24. public IEnumerator Test_BindToPosition()
  25. {
  26. var endValue = Vector3.one;
  27. yield return LMotion.Create(Vector3.zero, endValue, Duration).BindToPosition(target).ToYieldInteraction();
  28. Assert.That(target.position, Is.EqualTo(endValue).Using(Vector3EqualityComparer.Instance));
  29. }
  30. [UnityTest]
  31. public IEnumerator Test_BindToPositionX()
  32. {
  33. var endValue = 10f;
  34. yield return LMotion.Create(1f, endValue, Duration).BindToPositionX(target).ToYieldInteraction();
  35. Assert.That(target.position.x, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  36. }
  37. [UnityTest]
  38. public IEnumerator Test_BindToPositionY()
  39. {
  40. var endValue = 10f;
  41. yield return LMotion.Create(1f, endValue, Duration).BindToPositionY(target).ToYieldInteraction();
  42. Assert.That(target.position.y, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  43. }
  44. [UnityTest]
  45. public IEnumerator Test_BindToPositionZ()
  46. {
  47. var endValue = 10f;
  48. yield return LMotion.Create(1f, endValue, Duration).BindToPositionZ(target).ToYieldInteraction();
  49. Assert.That(target.position.z, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  50. }
  51. [UnityTest]
  52. public IEnumerator Test_BindToPositionXY()
  53. {
  54. var endValue = Vector2.one;
  55. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToPositionXY(target).ToYieldInteraction();
  56. Assert.That(new Vector2(target.position.x, target.position.y), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  57. }
  58. [UnityTest]
  59. public IEnumerator Test_BindToPositionXZ()
  60. {
  61. var endValue = Vector2.one;
  62. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToPositionXZ(target).ToYieldInteraction();
  63. Assert.That(new Vector2(target.position.x, target.position.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  64. }
  65. [UnityTest]
  66. public IEnumerator Test_BindToPositionYZ()
  67. {
  68. var endValue = Vector2.one;
  69. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToPositionYZ(target).ToYieldInteraction();
  70. Assert.That(new Vector2(target.position.y, target.position.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  71. }
  72. [UnityTest]
  73. public IEnumerator Test_BindToLocalPosition()
  74. {
  75. var endValue = Vector3.one;
  76. yield return LMotion.Create(Vector3.zero, endValue, Duration).BindToLocalPosition(target).ToYieldInteraction();
  77. Assert.That(target.localPosition, Is.EqualTo(endValue).Using(Vector3EqualityComparer.Instance));
  78. }
  79. [UnityTest]
  80. public IEnumerator Test_BindToLocalPositionX()
  81. {
  82. var endValue = 10f;
  83. yield return LMotion.Create(1f, endValue, Duration).BindToLocalPositionX(target).ToYieldInteraction();
  84. Assert.That(target.localPosition.x, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  85. }
  86. [UnityTest]
  87. public IEnumerator Test_BindToLocalPositionY()
  88. {
  89. var endValue = 10f;
  90. yield return LMotion.Create(1f, endValue, Duration).BindToLocalPositionY(target).ToYieldInteraction();
  91. Assert.That(target.localPosition.y, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  92. }
  93. [UnityTest]
  94. public IEnumerator Test_BindToLocalPositionZ()
  95. {
  96. var endValue = 10f;
  97. yield return LMotion.Create(1f, endValue, Duration).BindToLocalPositionZ(target).ToYieldInteraction();
  98. Assert.That(target.localPosition.z, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  99. }
  100. [UnityTest]
  101. public IEnumerator Test_BindToLocalPositionXY()
  102. {
  103. var endValue = Vector2.one;
  104. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToLocalPositionXY(target).ToYieldInteraction();
  105. Assert.That(new Vector2(target.localPosition.x, target.localPosition.y), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  106. }
  107. [UnityTest]
  108. public IEnumerator Test_BindToLocalPositionXZ()
  109. {
  110. var endValue = Vector2.one;
  111. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToLocalPositionXZ(target).ToYieldInteraction();
  112. Assert.That(new Vector2(target.localPosition.x, target.localPosition.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  113. }
  114. [UnityTest]
  115. public IEnumerator Test_BindToLocalPositionYZ()
  116. {
  117. var endValue = Vector2.one;
  118. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToLocalPositionYZ(target).ToYieldInteraction();
  119. Assert.That(new Vector2(target.localPosition.y, target.localPosition.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  120. }
  121. [UnityTest]
  122. public IEnumerator Test_BindToRotation()
  123. {
  124. var endValue = Quaternion.Euler(10f, 20f, 30f);
  125. yield return LMotion.Create(Quaternion.identity, endValue, Duration).BindToRotation(target).ToYieldInteraction();
  126. Assert.That(target.rotation, Is.EqualTo(endValue).Using(QuaternionEqualityComparer.Instance));
  127. }
  128. [UnityTest]
  129. public IEnumerator Test_BindToLocalRotation()
  130. {
  131. var endValue = Quaternion.Euler(10f, 20f, 30f);
  132. yield return LMotion.Create(Quaternion.identity, endValue, Duration).BindToLocalRotation(target).ToYieldInteraction();
  133. Assert.That(target.localRotation, Is.EqualTo(endValue).Using(QuaternionEqualityComparer.Instance));
  134. }
  135. [UnityTest]
  136. public IEnumerator Test_BindToEulerAngles()
  137. {
  138. var endValue = Vector3.one * 10f;
  139. yield return LMotion.Create(Vector3.zero, endValue, Duration).BindToEulerAngles(target).ToYieldInteraction();
  140. Assert.That(target.eulerAngles, Is.EqualTo(endValue).Using(Vector3EqualityComparer.Instance));
  141. }
  142. [UnityTest]
  143. public IEnumerator Test_BindToEulerAnglesX()
  144. {
  145. var endValue = 10f;
  146. yield return LMotion.Create(0f, endValue, Duration).BindToEulerAnglesX(target).ToYieldInteraction();
  147. Assert.That(target.eulerAngles.x, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  148. }
  149. [UnityTest]
  150. public IEnumerator Test_BindToEulerAnglesY()
  151. {
  152. var endValue = 10f;
  153. yield return LMotion.Create(0f, endValue, Duration).BindToEulerAnglesY(target).ToYieldInteraction();
  154. Assert.That(target.eulerAngles.y, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  155. }
  156. [UnityTest]
  157. public IEnumerator Test_BindToEulerAnglesZ()
  158. {
  159. var endValue = 10f;
  160. yield return LMotion.Create(0f, endValue, Duration).BindToEulerAnglesZ(target).ToYieldInteraction();
  161. Assert.That(target.eulerAngles.z, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  162. }
  163. [UnityTest]
  164. public IEnumerator Test_BindToEulerAnglesXY()
  165. {
  166. var endValue = Vector2.one * 10f;
  167. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToEulerAnglesXY(target).ToYieldInteraction();
  168. Assert.That(new Vector2(target.eulerAngles.x, target.eulerAngles.y), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  169. }
  170. [UnityTest]
  171. public IEnumerator Test_BindToEulerAnglesXZ()
  172. {
  173. var endValue = Vector2.one * 10f;
  174. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToEulerAnglesXZ(target).ToYieldInteraction();
  175. Assert.That(new Vector2(target.eulerAngles.x, target.eulerAngles.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  176. }
  177. [UnityTest]
  178. public IEnumerator Test_BindToEulerAnglesYZ()
  179. {
  180. var endValue = Vector2.one * 10f;
  181. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToEulerAnglesYZ(target).ToYieldInteraction();
  182. Assert.That(new Vector2(target.eulerAngles.y, target.eulerAngles.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  183. }
  184. [UnityTest]
  185. public IEnumerator Test_BindToLocalEulerAngles()
  186. {
  187. var endValue = Vector3.one * 10f;
  188. yield return LMotion.Create(Vector3.zero, endValue, Duration).BindToLocalEulerAngles(target).ToYieldInteraction();
  189. Assert.That(target.localEulerAngles, Is.EqualTo(endValue).Using(Vector3EqualityComparer.Instance));
  190. }
  191. [UnityTest]
  192. public IEnumerator Test_BindToLocalEulerAnglesX()
  193. {
  194. var endValue = 10f;
  195. yield return LMotion.Create(0f, endValue, Duration).BindToLocalEulerAnglesX(target).ToYieldInteraction();
  196. Assert.That(target.localEulerAngles.x, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  197. }
  198. [UnityTest]
  199. public IEnumerator Test_BindToLocalEulerAnglesY()
  200. {
  201. var endValue = 10f;
  202. yield return LMotion.Create(0f, endValue, Duration).BindToLocalEulerAnglesY(target).ToYieldInteraction();
  203. Assert.That(target.localEulerAngles.y, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  204. }
  205. [UnityTest]
  206. public IEnumerator Test_BindToLocalEulerAnglesZ()
  207. {
  208. var endValue = 10f;
  209. yield return LMotion.Create(0f, endValue, Duration).BindToLocalEulerAnglesZ(target).ToYieldInteraction();
  210. Assert.That(target.localEulerAngles.z, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  211. }
  212. [UnityTest]
  213. public IEnumerator Test_BindToLocalEulerAnglesXY()
  214. {
  215. var endValue = Vector2.one * 10f;
  216. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToLocalEulerAnglesXY(target).ToYieldInteraction();
  217. Assert.That(new Vector2(target.localEulerAngles.x, target.localEulerAngles.y), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  218. }
  219. [UnityTest]
  220. public IEnumerator Test_BindToLocalEulerAnglesXZ()
  221. {
  222. var endValue = Vector2.one * 10f;
  223. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToLocalEulerAnglesXZ(target).ToYieldInteraction();
  224. Assert.That(new Vector2(target.localEulerAngles.x, target.localEulerAngles.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  225. }
  226. [UnityTest]
  227. public IEnumerator Test_BindToLocalEulerAnglesYZ()
  228. {
  229. var endValue = Vector2.one * 10f;
  230. yield return LMotion.Create(Vector2.zero, endValue, Duration).BindToLocalEulerAnglesYZ(target).ToYieldInteraction();
  231. Assert.That(new Vector2(target.localEulerAngles.y, target.localEulerAngles.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  232. }
  233. [UnityTest]
  234. public IEnumerator Test_BindToLocalScale()
  235. {
  236. var endValue = Vector3.one * 2f;
  237. yield return LMotion.Create(Vector3.one, endValue, Duration).BindToLocalScale(target).ToYieldInteraction();
  238. Assert.That(target.localScale, Is.EqualTo(endValue).Using(Vector3EqualityComparer.Instance));
  239. }
  240. [UnityTest]
  241. public IEnumerator Test_BindToLocalScaleX()
  242. {
  243. var endValue = 2f;
  244. yield return LMotion.Create(1f, endValue, Duration).BindToLocalScaleX(target).ToYieldInteraction();
  245. Assert.That(target.localScale.x, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  246. }
  247. [UnityTest]
  248. public IEnumerator Test_BindToLocalScaleY()
  249. {
  250. var endValue = 2f;
  251. yield return LMotion.Create(1f, endValue, Duration).BindToLocalScaleY(target).ToYieldInteraction();
  252. Assert.That(target.localScale.y, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  253. }
  254. [UnityTest]
  255. public IEnumerator Test_BindToLocalScaleZ()
  256. {
  257. var endValue = 2f;
  258. yield return LMotion.Create(1f, endValue, Duration).BindToLocalScaleZ(target).ToYieldInteraction();
  259. Assert.That(target.localScale.z, Is.EqualTo(endValue).Using(FloatEqualityComparer.Instance));
  260. }
  261. [UnityTest]
  262. public IEnumerator Test_BindToLocalScaleXY()
  263. {
  264. var endValue = Vector2.one * 2f;
  265. yield return LMotion.Create(Vector2.one, endValue, Duration).BindToLocalScaleXY(target).ToYieldInteraction();
  266. Assert.That(new Vector2(target.localScale.x, target.localScale.y), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  267. }
  268. [UnityTest]
  269. public IEnumerator Test_BindToLocalScaleXZ()
  270. {
  271. var endValue = Vector2.one * 2f;
  272. yield return LMotion.Create(Vector2.one, endValue, Duration).BindToLocalScaleXZ(target).ToYieldInteraction();
  273. Assert.That(new Vector2(target.localScale.x, target.localScale.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  274. }
  275. [UnityTest]
  276. public IEnumerator Test_BindToLocalScaleYZ()
  277. {
  278. var endValue = Vector2.one * 2f;
  279. yield return LMotion.Create(Vector2.one, endValue, Duration).BindToLocalScaleYZ(target).ToYieldInteraction();
  280. Assert.That(new Vector2(target.localScale.y, target.localScale.z), Is.EqualTo(endValue).Using(Vector2EqualityComparer.Instance));
  281. }
  282. }
  283. }