PageRenderTime 46ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/bin/test.js

http://github.com/sledorze/monax
JavaScript | 710 lines | 710 code | 0 blank | 0 comment | 124 complexity | 64d54c80c1b285eefef89095f8562b86 MD5 | raw file
  1. (function () { "use strict";
  2. var $estr = function() { return js.Boot.__string_rec(this,''); };
  3. function $extend(from, fields) {
  4. function inherit() {}; inherit.prototype = from; var proto = new inherit();
  5. for (var name in fields) proto[name] = fields[name];
  6. return proto;
  7. }
  8. var MonadTest = function() {
  9. };
  10. MonadTest.__name__ = ["MonadTest"];
  11. MonadTest.main = function() {
  12. new MonadTest().compilationTest();
  13. new NodeJsMonadTest().compilationTest();
  14. }
  15. MonadTest.prototype = {
  16. compilationTest: function() {
  17. var res = (function($this) {
  18. var $r;
  19. var $e = (com.mindrocks.monads.Option.Some(55));
  20. switch( $e[1] ) {
  21. case 1:
  22. var o_eSome_0 = $e[2];
  23. $r = com.mindrocks.monads.Option.Some(o_eSome_0 * 2 + o_eSome_0);
  24. break;
  25. default:
  26. $r = com.mindrocks.monads.Option.None;
  27. }
  28. return $r;
  29. }(this));
  30. var nested = (function($this) {
  31. var $r;
  32. var $e = (com.mindrocks.monads.Option.Some([10,20]));
  33. switch( $e[1] ) {
  34. case 1:
  35. var o_eSome_0 = $e[2];
  36. $r = (function(v) {
  37. return com.mindrocks.monads.Option.Some(Array_Monad.map(v,function(x) {
  38. return x + 2;
  39. }));
  40. })(o_eSome_0);
  41. break;
  42. default:
  43. $r = com.mindrocks.monads.Option.None;
  44. }
  45. return $r;
  46. }(this));
  47. console.log("Nested " + Std.string(nested));
  48. massive.munit.Assert.isTrue((function($this) {
  49. var $r;
  50. var $e = (res);
  51. switch( $e[1] ) {
  52. case 0:
  53. $r = false;
  54. break;
  55. case 1:
  56. var res_eSome_0 = $e[2];
  57. $r = res_eSome_0 == 165;
  58. break;
  59. }
  60. return $r;
  61. }(this)),{ fileName : "MonadTest.hx", lineNumber : 50, className : "MonadTest", methodName : "compilationTest"});
  62. var res2 = Array_Monad.flatMap([0,1,2],function(a) {
  63. return Array_Monad.flatMap([10,20,30],function(b) {
  64. return [a + b + 1000];
  65. });
  66. });
  67. var expected = [1010,1020,1030,1011,1021,1031,1012,1022,1032];
  68. var equals = res2.length == expected.length;
  69. if(equals) {
  70. var _g1 = 0, _g = res2.length;
  71. while(_g1 < _g) {
  72. var i = _g1++;
  73. equals = equals && res2[i] == expected[i];
  74. }
  75. }
  76. massive.munit.Assert.isTrue(equals,{ fileName : "MonadTest.hx", lineNumber : 72, className : "MonadTest", methodName : "compilationTest"});
  77. var res3 = (ST_Monad.flatMap(ST_Monad.gets(),function(passedState) {
  78. return ST_Monad.flatMap(ST_Monad.puts("2"),function(_) {
  79. return ST_Monad.flatMap(ST_Monad.gets(),function(state) {
  80. return ST_Monad.ret("passed state: " + passedState + " new state: " + state);
  81. });
  82. });
  83. }))("1").value;
  84. massive.munit.Assert.areEqual(res3,"passed state: 1 new state: 2",{ fileName : "MonadTest.hx", lineNumber : 82, className : "MonadTest", methodName : "compilationTest"});
  85. var dummyReadFile = function(cont) {
  86. var fileContents = "dummy-content";
  87. return cont(fileContents);
  88. };
  89. var res4 = ((function(headline) {
  90. return Cont_Monad.map(dummyReadFile,function(filecontents) {
  91. return Std.string(headline) + "\n" + filecontents;
  92. });
  93. })(52))(function(x) {
  94. return x;
  95. });
  96. massive.munit.Assert.areEqual(res4,"52\ndummy-content",{ fileName : "MonadTest.hx", lineNumber : 96, className : "MonadTest", methodName : "compilationTest"});
  97. }
  98. ,__class__: MonadTest
  99. }
  100. var NodeJsMonadTest = function() {
  101. };
  102. NodeJsMonadTest.__name__ = ["NodeJsMonadTest"];
  103. NodeJsMonadTest.prototype = {
  104. compilationTest: function() {
  105. var db = new DB();
  106. var getLengthViaEither = NodeM.flatMap(function(_) {
  107. return db.collection("avatars",com.mindrocks.monads.instances.NodeJsEitherCB.either(_));
  108. },function(coll) {
  109. return NodeM.flatMap(function(_) {
  110. return (function($this) {
  111. var $r;
  112. var $e = (coll);
  113. switch( $e[1] ) {
  114. case 1:
  115. var coll_eRight_0 = $e[2];
  116. $r = coll_eRight_0.all("",_);
  117. break;
  118. case 0:
  119. $r = null;
  120. break;
  121. }
  122. return $r;
  123. }(this));
  124. },function(avatars) {
  125. return NodeM.map(function(_) {
  126. return avatars[0].size(com.mindrocks.monads.instances.NodeJsEitherCB.single(_));
  127. },function(size) {
  128. return size;
  129. });
  130. });
  131. });
  132. var getLength = NodeM.flatMap(function(_) {
  133. return db.collection("avatars",_);
  134. },function(coll1) {
  135. return NodeM.flatMap(function(_) {
  136. return coll1.all("",_);
  137. },function(avatars1) {
  138. return NodeM.map(function(_) {
  139. return avatars1[0].size(com.mindrocks.monads.instances.NodeJsEitherCB.single(_));
  140. },function(size) {
  141. return size;
  142. });
  143. });
  144. });
  145. getLength(function(err,res) {
  146. massive.munit.Assert.areEqual(2,res,{ fileName : "NodeJsMonadTest.hx", lineNumber : 47, className : "NodeJsMonadTest", methodName : "compilationTest"});
  147. });
  148. getLength(function(err,res) {
  149. massive.munit.Assert.areEqual(2,res,{ fileName : "NodeJsMonadTest.hx", lineNumber : 48, className : "NodeJsMonadTest", methodName : "compilationTest"});
  150. });
  151. massive.munit.Assert.areEqual(2,DB.nbCalls,{ fileName : "NodeJsMonadTest.hx", lineNumber : 49, className : "NodeJsMonadTest", methodName : "compilationTest"});
  152. }
  153. ,__class__: NodeJsMonadTest
  154. }
  155. var Obj = function(name) {
  156. this.name = name;
  157. };
  158. Obj.__name__ = ["Obj"];
  159. Obj.prototype = {
  160. size: function(cb) {
  161. cb(2);
  162. }
  163. ,__class__: Obj
  164. }
  165. var Collection = function() {
  166. this.objs = [new Obj("a"),new Obj("b")];
  167. };
  168. Collection.__name__ = ["Collection"];
  169. Collection.prototype = {
  170. all: function(name,cb) {
  171. cb(null,this.objs);
  172. }
  173. ,__class__: Collection
  174. }
  175. var DB = function() {
  176. this.coll = new Collection();
  177. };
  178. DB.__name__ = ["DB"];
  179. DB.prototype = {
  180. collection: function(name,cb) {
  181. DB.nbCalls++;
  182. cb(null,this.coll);
  183. }
  184. ,__class__: DB
  185. }
  186. var Std = function() { }
  187. Std.__name__ = ["Std"];
  188. Std.string = function(s) {
  189. return js.Boot.__string_rec(s,"");
  190. }
  191. var ValueType = { __ename__ : true, __constructs__ : ["TNull","TInt","TFloat","TBool","TObject","TFunction","TClass","TEnum","TUnknown"] }
  192. ValueType.TNull = ["TNull",0];
  193. ValueType.TNull.toString = $estr;
  194. ValueType.TNull.__enum__ = ValueType;
  195. ValueType.TInt = ["TInt",1];
  196. ValueType.TInt.toString = $estr;
  197. ValueType.TInt.__enum__ = ValueType;
  198. ValueType.TFloat = ["TFloat",2];
  199. ValueType.TFloat.toString = $estr;
  200. ValueType.TFloat.__enum__ = ValueType;
  201. ValueType.TBool = ["TBool",3];
  202. ValueType.TBool.toString = $estr;
  203. ValueType.TBool.__enum__ = ValueType;
  204. ValueType.TObject = ["TObject",4];
  205. ValueType.TObject.toString = $estr;
  206. ValueType.TObject.__enum__ = ValueType;
  207. ValueType.TFunction = ["TFunction",5];
  208. ValueType.TFunction.toString = $estr;
  209. ValueType.TFunction.__enum__ = ValueType;
  210. ValueType.TClass = function(c) { var $x = ["TClass",6,c]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
  211. ValueType.TEnum = function(e) { var $x = ["TEnum",7,e]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
  212. ValueType.TUnknown = ["TUnknown",8];
  213. ValueType.TUnknown.toString = $estr;
  214. ValueType.TUnknown.__enum__ = ValueType;
  215. var Type = function() { }
  216. Type.__name__ = ["Type"];
  217. Type.getClassName = function(c) {
  218. var a = c.__name__;
  219. return a.join(".");
  220. }
  221. Type["typeof"] = function(v) {
  222. var _g = typeof(v);
  223. switch(_g) {
  224. case "boolean":
  225. return ValueType.TBool;
  226. case "string":
  227. return ValueType.TClass(String);
  228. case "number":
  229. if(Math.ceil(v) == v % 2147483648.0) return ValueType.TInt;
  230. return ValueType.TFloat;
  231. case "object":
  232. if(v == null) return ValueType.TNull;
  233. var e = v.__enum__;
  234. if(e != null) return ValueType.TEnum(e);
  235. var c = v.__class__;
  236. if(c != null) return ValueType.TClass(c);
  237. return ValueType.TObject;
  238. case "function":
  239. if(v.__name__ || v.__ename__) return ValueType.TObject;
  240. return ValueType.TFunction;
  241. case "undefined":
  242. return ValueType.TNull;
  243. default:
  244. return ValueType.TUnknown;
  245. }
  246. }
  247. Type.enumEq = function(a,b) {
  248. if(a == b) return true;
  249. try {
  250. if(a[0] != b[0]) return false;
  251. var _g1 = 2, _g = a.length;
  252. while(_g1 < _g) {
  253. var i = _g1++;
  254. if(!Type.enumEq(a[i],b[i])) return false;
  255. }
  256. var e = a.__enum__;
  257. if(e != b.__enum__ || e == null) return false;
  258. } catch( e ) {
  259. return false;
  260. }
  261. return true;
  262. }
  263. var com = {}
  264. com.mindrocks = {}
  265. com.mindrocks.monads = {}
  266. com.mindrocks.monads.MonadOp = { __ename__ : true, __constructs__ : [] }
  267. com.mindrocks.monads.Option = { __ename__ : true, __constructs__ : ["None","Some"] }
  268. com.mindrocks.monads.Option.None = ["None",0];
  269. com.mindrocks.monads.Option.None.toString = $estr;
  270. com.mindrocks.monads.Option.None.__enum__ = com.mindrocks.monads.Option;
  271. com.mindrocks.monads.Option.Some = function(v) { var $x = ["Some",1,v]; $x.__enum__ = com.mindrocks.monads.Option; $x.toString = $estr; return $x; }
  272. com.mindrocks.monads.Monad = function() { }
  273. com.mindrocks.monads.Monad.__name__ = ["com","mindrocks","monads","Monad"];
  274. com.mindrocks.monads.Monad.noOpt = function(m,position) {
  275. return m;
  276. }
  277. com.mindrocks.monads.Monad._dO = function(monadTypeName,body,context,optimize) {
  278. }
  279. com.mindrocks.monads.instances = {}
  280. com.mindrocks.monads.instances.Either = { __ename__ : true, __constructs__ : ["Left","Right"] }
  281. com.mindrocks.monads.instances.Either.Left = function(a) { var $x = ["Left",0,a]; $x.__enum__ = com.mindrocks.monads.instances.Either; $x.toString = $estr; return $x; }
  282. com.mindrocks.monads.instances.Either.Right = function(b) { var $x = ["Right",1,b]; $x.__enum__ = com.mindrocks.monads.instances.Either; $x.toString = $estr; return $x; }
  283. com.mindrocks.monads.instances.NodeJsEitherCB = function() { }
  284. com.mindrocks.monads.instances.NodeJsEitherCB.__name__ = ["com","mindrocks","monads","instances","NodeJsEitherCB"];
  285. com.mindrocks.monads.instances.NodeJsEitherCB.either = function(f) {
  286. return function(err,v) {
  287. if(err == null) f(null,com.mindrocks.monads.instances.Either.Right(v)); else f(null,com.mindrocks.monads.instances.Either.Left(err));
  288. };
  289. }
  290. com.mindrocks.monads.instances.NodeJsEitherCB.single = function(f) {
  291. return function(v) {
  292. f(null,v);
  293. };
  294. }
  295. var NodeM = function() { }
  296. NodeM.__name__ = ["NodeM"];
  297. NodeM.monad = function(o) {
  298. return NodeM;
  299. }
  300. NodeM.specialOpt = function(m,position) {
  301. return null;
  302. }
  303. NodeM.ret = function(i) {
  304. return function(cont) {
  305. return cont(null,i);
  306. };
  307. }
  308. NodeM.flatMap = function(m,k) {
  309. return function(cont) {
  310. return m(function(err,a) {
  311. if(err != null) return cont(err,null); else return (k(a))(cont);
  312. });
  313. };
  314. }
  315. NodeM.map = function(m,k) {
  316. return function(cont) {
  317. return m(function(err,a) {
  318. if(err != null) return cont(err,null); else return cont(null,k(a));
  319. });
  320. };
  321. }
  322. var Option_Monad = function() { }
  323. Option_Monad.__name__ = ["Option_Monad"];
  324. Option_Monad.monad = function(o) {
  325. return Option_Monad;
  326. }
  327. Option_Monad.ret = function(x) {
  328. return com.mindrocks.monads.Option.Some(x);
  329. }
  330. Option_Monad.map = function(o,f) {
  331. var $e = (o);
  332. switch( $e[1] ) {
  333. case 1:
  334. var o_eSome_0 = $e[2];
  335. return com.mindrocks.monads.Option.Some(f(o_eSome_0));
  336. default:
  337. return com.mindrocks.monads.Option.None;
  338. }
  339. }
  340. Option_Monad.flatMap = function(o,f) {
  341. var $e = (o);
  342. switch( $e[1] ) {
  343. case 1:
  344. var o_eSome_0 = $e[2];
  345. return f(o_eSome_0);
  346. default:
  347. return com.mindrocks.monads.Option.None;
  348. }
  349. }
  350. var Array_Monad = function() { }
  351. Array_Monad.__name__ = ["Array_Monad"];
  352. Array_Monad.monad = function(o) {
  353. return Array_Monad;
  354. }
  355. Array_Monad.ret = function(x) {
  356. return [x];
  357. }
  358. Array_Monad.flatMap = function(xs,f) {
  359. var res = [];
  360. var _g = 0;
  361. while(_g < xs.length) {
  362. var x = xs[_g];
  363. ++_g;
  364. var _g1 = 0, _g2 = f(x);
  365. while(_g1 < _g2.length) {
  366. var y = _g2[_g1];
  367. ++_g1;
  368. res.push(y);
  369. }
  370. }
  371. return res;
  372. }
  373. Array_Monad.map = function(xs,f) {
  374. var res = [];
  375. var _g = 0;
  376. while(_g < xs.length) {
  377. var x = xs[_g];
  378. ++_g;
  379. res.push(f(x));
  380. }
  381. return res;
  382. }
  383. var ST_Monad = function() { }
  384. ST_Monad.__name__ = ["ST_Monad"];
  385. ST_Monad.monad = function(o) {
  386. return ST_Monad;
  387. }
  388. ST_Monad.ret = function(i) {
  389. return function(s) {
  390. return { state : s, value : i};
  391. };
  392. }
  393. ST_Monad.flatMap = function(a,f) {
  394. return function(state) {
  395. var s = a(state);
  396. return (f(s.value))(s.state);
  397. };
  398. }
  399. ST_Monad.gets = function() {
  400. return function(s) {
  401. return { state : s, value : s};
  402. };
  403. }
  404. ST_Monad.puts = function(s) {
  405. return function(_) {
  406. return { state : s, value : null};
  407. };
  408. }
  409. ST_Monad.runState = function(f,s) {
  410. return f(s).value;
  411. }
  412. var Cont_Monad = function() { }
  413. Cont_Monad.__name__ = ["Cont_Monad"];
  414. Cont_Monad.monad = function(o) {
  415. return Cont_Monad;
  416. }
  417. Cont_Monad.ret = function(i) {
  418. return function(cont) {
  419. return cont(i);
  420. };
  421. }
  422. Cont_Monad.flatMap = function(m,k) {
  423. return function(cont) {
  424. return m(function(a) {
  425. return (k(a))(cont);
  426. });
  427. };
  428. }
  429. Cont_Monad.map = function(m,k) {
  430. return function(cont) {
  431. return m(function(a) {
  432. return cont(k(a));
  433. });
  434. };
  435. }
  436. var haxe = {}
  437. haxe.ds = {}
  438. haxe.ds.StringMap = function() {
  439. this.h = { };
  440. };
  441. haxe.ds.StringMap.__name__ = ["haxe","ds","StringMap"];
  442. haxe.ds.StringMap.prototype = {
  443. __class__: haxe.ds.StringMap
  444. }
  445. var js = {}
  446. js.Boot = function() { }
  447. js.Boot.__name__ = ["js","Boot"];
  448. js.Boot.__string_rec = function(o,s) {
  449. if(o == null) return "null";
  450. if(s.length >= 5) return "<...>";
  451. var t = typeof(o);
  452. if(t == "function" && (o.__name__ || o.__ename__)) t = "object";
  453. switch(t) {
  454. case "object":
  455. if(o instanceof Array) {
  456. if(o.__enum__) {
  457. if(o.length == 2) return o[0];
  458. var str = o[0] + "(";
  459. s += "\t";
  460. var _g1 = 2, _g = o.length;
  461. while(_g1 < _g) {
  462. var i = _g1++;
  463. if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
  464. }
  465. return str + ")";
  466. }
  467. var l = o.length;
  468. var i;
  469. var str = "[";
  470. s += "\t";
  471. var _g = 0;
  472. while(_g < l) {
  473. var i1 = _g++;
  474. str += (i1 > 0?",":"") + js.Boot.__string_rec(o[i1],s);
  475. }
  476. str += "]";
  477. return str;
  478. }
  479. var tostr;
  480. try {
  481. tostr = o.toString;
  482. } catch( e ) {
  483. return "???";
  484. }
  485. if(tostr != null && tostr != Object.toString) {
  486. var s2 = o.toString();
  487. if(s2 != "[object Object]") return s2;
  488. }
  489. var k = null;
  490. var str = "{\n";
  491. s += "\t";
  492. var hasp = o.hasOwnProperty != null;
  493. for( var k in o ) { ;
  494. if(hasp && !o.hasOwnProperty(k)) {
  495. continue;
  496. }
  497. if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
  498. continue;
  499. }
  500. if(str.length != 2) str += ", \n";
  501. str += s + k + " : " + js.Boot.__string_rec(o[k],s);
  502. }
  503. s = s.substring(1);
  504. str += "\n" + s + "}";
  505. return str;
  506. case "function":
  507. return "<function>";
  508. case "string":
  509. return o;
  510. default:
  511. return String(o);
  512. }
  513. }
  514. js.Boot.__interfLoop = function(cc,cl) {
  515. if(cc == null) return false;
  516. if(cc == cl) return true;
  517. var intf = cc.__interfaces__;
  518. if(intf != null) {
  519. var _g1 = 0, _g = intf.length;
  520. while(_g1 < _g) {
  521. var i = _g1++;
  522. var i1 = intf[i];
  523. if(i1 == cl || js.Boot.__interfLoop(i1,cl)) return true;
  524. }
  525. }
  526. return js.Boot.__interfLoop(cc.__super__,cl);
  527. }
  528. js.Boot.__instanceof = function(o,cl) {
  529. try {
  530. if(o instanceof cl) {
  531. if(cl == Array) return o.__enum__ == null;
  532. return true;
  533. }
  534. if(js.Boot.__interfLoop(o.__class__,cl)) return true;
  535. } catch( e ) {
  536. if(cl == null) return false;
  537. }
  538. switch(cl) {
  539. case Int:
  540. return Math.ceil(o%2147483648.0) === o;
  541. case Float:
  542. return typeof(o) == "number";
  543. case Bool:
  544. return o === true || o === false;
  545. case String:
  546. return typeof(o) == "string";
  547. case Dynamic:
  548. return true;
  549. default:
  550. if(o == null) return false;
  551. if(cl == Class && o.__name__ != null) return true; else null;
  552. if(cl == Enum && o.__ename__ != null) return true; else null;
  553. return o.__enum__ == cl;
  554. }
  555. }
  556. var massive = {}
  557. massive.haxe = {}
  558. massive.haxe.Exception = function(message,info) {
  559. this.message = message;
  560. this.info = info;
  561. this.type = massive.haxe.util.ReflectUtil.here({ fileName : "Exception.hx", lineNumber : 70, className : "massive.haxe.Exception", methodName : "new"}).className;
  562. };
  563. massive.haxe.Exception.__name__ = ["massive","haxe","Exception"];
  564. massive.haxe.Exception.prototype = {
  565. toString: function() {
  566. var str = this.type + ": " + this.message;
  567. if(this.info != null) str += " at " + this.info.className + "#" + this.info.methodName + " (" + this.info.lineNumber + ")";
  568. return str;
  569. }
  570. ,__class__: massive.haxe.Exception
  571. }
  572. massive.haxe.util = {}
  573. massive.haxe.util.ReflectUtil = function() { }
  574. massive.haxe.util.ReflectUtil.__name__ = ["massive","haxe","util","ReflectUtil"];
  575. massive.haxe.util.ReflectUtil.here = function(info) {
  576. return info;
  577. }
  578. massive.munit = {}
  579. massive.munit.Assert = function() { }
  580. massive.munit.Assert.__name__ = ["massive","munit","Assert"];
  581. massive.munit.Assert.isTrue = function(value,info) {
  582. massive.munit.Assert.assertionCount++;
  583. if(value != true) massive.munit.Assert.fail("Expected TRUE but was [" + Std.string(value) + "]",info);
  584. }
  585. massive.munit.Assert.isFalse = function(value,info) {
  586. massive.munit.Assert.assertionCount++;
  587. if(value != false) massive.munit.Assert.fail("Expected FALSE but was [" + Std.string(value) + "]",info);
  588. }
  589. massive.munit.Assert.isNull = function(value,info) {
  590. massive.munit.Assert.assertionCount++;
  591. if(value != null) massive.munit.Assert.fail("Value [" + Std.string(value) + "] was not NULL",info);
  592. }
  593. massive.munit.Assert.isNotNull = function(value,info) {
  594. massive.munit.Assert.assertionCount++;
  595. if(value == null) massive.munit.Assert.fail("Value [" + Std.string(value) + "] was NULL",info);
  596. }
  597. massive.munit.Assert.isNaN = function(value,info) {
  598. massive.munit.Assert.assertionCount++;
  599. if(!Math.isNaN(value)) massive.munit.Assert.fail("Value [" + value + "] was not NaN",info);
  600. }
  601. massive.munit.Assert.isNotNaN = function(value,info) {
  602. massive.munit.Assert.assertionCount++;
  603. if(Math.isNaN(value)) massive.munit.Assert.fail("Value [" + value + "] was NaN",info);
  604. }
  605. massive.munit.Assert.isType = function(value,type,info) {
  606. massive.munit.Assert.assertionCount++;
  607. if(!js.Boot.__instanceof(value,type)) massive.munit.Assert.fail("Value [" + Std.string(value) + "] was not of type: " + Type.getClassName(type),info);
  608. }
  609. massive.munit.Assert.isNotType = function(value,type,info) {
  610. massive.munit.Assert.assertionCount++;
  611. if(js.Boot.__instanceof(value,type)) massive.munit.Assert.fail("Value [" + Std.string(value) + "] was of type: " + Type.getClassName(type),info);
  612. }
  613. massive.munit.Assert.areEqual = function(expected,actual,info) {
  614. massive.munit.Assert.assertionCount++;
  615. var equal = (function($this) {
  616. var $r;
  617. var _g = Type["typeof"](expected);
  618. $r = (function($this) {
  619. var $r;
  620. switch( (_g)[1] ) {
  621. case 7:
  622. $r = Type.enumEq(expected,actual);
  623. break;
  624. default:
  625. $r = expected == actual;
  626. }
  627. return $r;
  628. }($this));
  629. return $r;
  630. }(this));
  631. if(!equal) massive.munit.Assert.fail("Value [" + Std.string(actual) + "] was not equal to expected value [" + Std.string(expected) + "]",info);
  632. }
  633. massive.munit.Assert.areNotEqual = function(expected,actual,info) {
  634. massive.munit.Assert.assertionCount++;
  635. var equal = (function($this) {
  636. var $r;
  637. var _g = Type["typeof"](expected);
  638. $r = (function($this) {
  639. var $r;
  640. switch( (_g)[1] ) {
  641. case 7:
  642. $r = Type.enumEq(expected,actual);
  643. break;
  644. default:
  645. $r = expected == actual;
  646. }
  647. return $r;
  648. }($this));
  649. return $r;
  650. }(this));
  651. if(equal) massive.munit.Assert.fail("Value [" + Std.string(actual) + "] was equal to value [" + Std.string(expected) + "]",info);
  652. }
  653. massive.munit.Assert.areSame = function(expected,actual,info) {
  654. massive.munit.Assert.assertionCount++;
  655. if(expected != actual) massive.munit.Assert.fail("Value [" + Std.string(actual) + "] was not the same as expected value [" + Std.string(expected) + "]",info);
  656. }
  657. massive.munit.Assert.areNotSame = function(expected,actual,info) {
  658. massive.munit.Assert.assertionCount++;
  659. if(expected == actual) massive.munit.Assert.fail("Value [" + Std.string(actual) + "] was the same as expected value [" + Std.string(expected) + "]",info);
  660. }
  661. massive.munit.Assert.fail = function(msg,info) {
  662. throw new massive.munit.AssertionException(msg,info);
  663. }
  664. massive.munit.MUnitException = function(message,info) {
  665. massive.haxe.Exception.call(this,message,info);
  666. this.type = massive.haxe.util.ReflectUtil.here({ fileName : "MUnitException.hx", lineNumber : 50, className : "massive.munit.MUnitException", methodName : "new"}).className;
  667. };
  668. massive.munit.MUnitException.__name__ = ["massive","munit","MUnitException"];
  669. massive.munit.MUnitException.__super__ = massive.haxe.Exception;
  670. massive.munit.MUnitException.prototype = $extend(massive.haxe.Exception.prototype,{
  671. __class__: massive.munit.MUnitException
  672. });
  673. massive.munit.AssertionException = function(msg,info) {
  674. massive.munit.MUnitException.call(this,msg,info);
  675. this.type = massive.haxe.util.ReflectUtil.here({ fileName : "AssertionException.hx", lineNumber : 49, className : "massive.munit.AssertionException", methodName : "new"}).className;
  676. };
  677. massive.munit.AssertionException.__name__ = ["massive","munit","AssertionException"];
  678. massive.munit.AssertionException.__super__ = massive.munit.MUnitException;
  679. massive.munit.AssertionException.prototype = $extend(massive.munit.MUnitException.prototype,{
  680. __class__: massive.munit.AssertionException
  681. });
  682. Math.__name__ = ["Math"];
  683. Math.NaN = Number.NaN;
  684. Math.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;
  685. Math.POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
  686. Math.isFinite = function(i) {
  687. return isFinite(i);
  688. };
  689. Math.isNaN = function(i) {
  690. return isNaN(i);
  691. };
  692. String.prototype.__class__ = String;
  693. String.__name__ = ["String"];
  694. Array.prototype.__class__ = Array;
  695. Array.__name__ = ["Array"];
  696. var Int = { __name__ : ["Int"]};
  697. var Dynamic = { __name__ : ["Dynamic"]};
  698. var Float = Number;
  699. Float.__name__ = ["Float"];
  700. var Bool = Boolean;
  701. Bool.__ename__ = ["Bool"];
  702. var Class = { __name__ : ["Class"]};
  703. var Enum = { };
  704. MonadTest.__meta__ = { fields : { compilationTest : { Test : null}}};
  705. NodeJsMonadTest.__meta__ = { fields : { compilationTest : { Test : null}}};
  706. DB.nbCalls = 0;
  707. com.mindrocks.monads.Monad.validNames = new haxe.ds.StringMap();
  708. massive.munit.Assert.assertionCount = 0;
  709. MonadTest.main();
  710. })();