floatcmp.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function print(s) {
  6. if (typeof(WScript) == "undefined")
  7. document.write(s + "<br/>");
  8. else
  9. WScript.Echo(s);
  10. }
  11. var Count = 0;
  12. var Failed = 0;
  13. function Check(str, result, expected)
  14. {
  15. if (result != expected)
  16. {
  17. print("Test #"+Count+" failed. <"+str+"> Expected "+expected);
  18. Failed++;
  19. }
  20. }
  21. function test(s1, s2, b1)
  22. {
  23. // Force float-pref
  24. s1 += 0.1;
  25. s2 += 0.1;
  26. b1 += 0.1;
  27. var r = false;
  28. // Test 1
  29. Count++; r = false;
  30. if (s1 == b1) {
  31. r = true;
  32. }
  33. Check("s1 == b1", r, false);
  34. // Test 2
  35. Count++; r = false;
  36. if (s1 != b1)
  37. {
  38. r = true;
  39. }
  40. Check("s1 != b1", r, true);
  41. // Test 3
  42. Count++; r = false;
  43. if (s1 <= b1) {
  44. r = true;
  45. }
  46. Check("s1 <= b1", r, true);
  47. // Test 4
  48. Count++; r = false;
  49. if (s1 < b1) {
  50. r = true;
  51. }
  52. Check("s1 < b1", r, true);
  53. // Test 5
  54. Count++; r = false;
  55. if (s1 >= b1) {
  56. r = true;
  57. }
  58. Check("s1 >= b1", r, false);
  59. // Test 6
  60. Count++; r = false;
  61. if (s1 > b1) {
  62. r = true;
  63. }
  64. Check("s1 > b1", r, false);
  65. // Test 7
  66. Count++; r = false;
  67. if (s1 == s2)
  68. {
  69. r = true;
  70. }
  71. Check("s1 == s2", r, true);
  72. // Test 8
  73. Count++; r = false;
  74. if (s1 != s2) {
  75. r = true;
  76. }
  77. Check("s1 != s2", r, false);
  78. // Test 9
  79. Count++; r = false;
  80. if (s1 <= s2) {
  81. r = true;
  82. }
  83. Check("s1 <= s2", r, true);
  84. // Test 10
  85. Count++; r = false;
  86. if (s1 < s2) {
  87. r = true;
  88. }
  89. Check("s1 < s2", r, false);
  90. // Test 11
  91. Count++; r = false;
  92. if (s1 >= s2) {
  93. r = true;
  94. }
  95. Check("s1 >= s2", r, true);
  96. // Test 12
  97. Count++; r = false;
  98. if (s1 > s2) {
  99. r = true;
  100. }
  101. Check("s1 > s2", r, false);
  102. // Test 13
  103. Count++;
  104. Check("s1 == b1", s1 == b1, false);
  105. // Test 14
  106. Count++;
  107. Check("s1 != b1", s1 != b1, true);
  108. // Test 15
  109. Count++;
  110. Check("s1 <= b1", s1 <= b1, true);
  111. // Test 16
  112. Count++;
  113. Check("s1 < b1", s1 < b1, true);
  114. // Test 17
  115. Count++;
  116. Check("s1 >= b1", s1 >= b1, false);
  117. // Test 18
  118. Count++;
  119. Check("s1 > b1", s1 > b1, false);
  120. // Test 19
  121. Count++;
  122. Check("s1 == s2", s1 == s2, true);
  123. // Test 20
  124. Count++;
  125. Check("s1 != s2", s1 != s2, false);
  126. // Test 21
  127. Count++;
  128. Check("s1 <= s2", s1 <= s2, true);
  129. // Test 22
  130. Count++;
  131. Check("s1 < s2", s1 < s2, false);
  132. // Test 23
  133. Count++;
  134. Check("s1 >= s2", s1 >= s2, true);
  135. // Test 24
  136. Count++;
  137. Check("s1 > s2", s1 > s2, false);
  138. // Test 25
  139. Count++; r = false;
  140. if (s1 === b1) {
  141. r = true;
  142. }
  143. Check("s1 === b1", r, false);
  144. // Test 26
  145. Count++; r = false;
  146. if (s1 !== b1)
  147. {
  148. r = true;
  149. }
  150. Check("s1 !== b1", r, true);
  151. // Test 27
  152. Count++; r = false;
  153. if (s1 === s2)
  154. {
  155. r = true;
  156. }
  157. Check("s1 === s2", r, true);
  158. // Test 28
  159. Count++; r = false;
  160. if (s1 !== s2) {
  161. r = true;
  162. }
  163. Check("s1 !== s2", r, false);
  164. // Test 29
  165. Count++;
  166. Check("s1 === b1", s1 === b1, false);
  167. // Test 30
  168. Count++;
  169. Check("s1 !== b1", s1 !== b1, true);
  170. // Test 31
  171. Count++;
  172. Check("s1 === s2", s1 === s2, true);
  173. // Test 32
  174. Count++;
  175. Check("s1 !== s2", s1 !== s2, false);
  176. if (!Failed)
  177. {
  178. print("Passed");
  179. }
  180. }
  181. test(1.1, 1.1, 2.1);