/*
 * NoGray JavaScript Library v1.0
 * http://www.NoGray.com
 *
 * Copyright (c) 2009 Wesam Saif
 * http://www.nogray.com/license.php
 */
function ng_unit_test(i){var g=document.createElement("table");g.cellSpacing="0";g.cellPadding="0";g.className="ng-unit-test";var f=document.createElement("tbody");g.appendChild(f);var l=document.createElement("tr");f.appendChild(l);var c=document.createElement("th");c.innerHTML="Function Name";l.appendChild(c);c=document.createElement("th");c.innerHTML="Case Name";l.appendChild(c);c=document.createElement("th");c.innerHTML="Arguments";l.appendChild(c);c=document.createElement("th");c.innerHTML="Return";l.appendChild(c);c=document.createElement("th");c.innerHTML="Expected";l.appendChild(c);c=document.createElement("th");c.innerHTML="Result";l.appendChild(c);c=document.createElement("th");c.innerHTML="Time";l.appendChild(c);if(__main_test_area){document.getElementById(__main_test_area).innerHTML="";document.getElementById(__main_test_area).appendChild(g)}else{document.body.appendChild(g)}var k=0;var h=0;var a=0;var n=0;var e=0;var j=0;var d=0;function b(){var r=document.createElement("tr");if(h%2!=0){r.className="odd"}f.appendChild(r);var v;if(h==0){v=document.createElement("td");v.rowSpan=i[k].cases.length;v.vAlign="top";v.className="func-name";v.innerHTML=i[k].name;r.appendChild(v)}if(!i[k].cases[h].success){i[k].cases[h].success=function(){return(i[k].cases[h].expect==i[k].cases[h].result)}}if(!i[k].cases[h].fail){i[k].cases[h].fail=function(){return !i[k].cases[h].success()}}var v=document.createElement("td");v.className="case-name";v.innerHTML=i[k].cases[h].name;r.appendChild(v);v=document.createElement("td");v.className="arguments";if(i[k].cases[h].args.length>0){v.innerHTML=i[k].cases[h].args.join("<br /><br />")}else{v.innerHTML="<em>No Arguments</em>"}r.appendChild(v);var u=new Date().getTime();try{i[k].cases[h].result=i[k].func.apply(null,i[k].cases[h].args)}catch(t){i[k].cases[h].result="Fatal Error: "+t.message}var s=new Date().getTime();var o=s-u;a+=o;v=document.createElement("td");v.className="return";var q=i[k].cases[h].result;if(i[k].cases[h].pre_required){var q="<pre>"+q+"</pre>"}v.innerHTML=q;r.appendChild(v);v=document.createElement("td");v.className="expect";if(i[k].cases[h].pre_required){var p="<pre>"+i[k].cases[h].expect+"</pre>"}else{var p=i[k].cases[h].expect}v.innerHTML=p;r.appendChild(v);v=document.createElement("td");if(i[k].cases[h].success.apply(null,[i[k].cases[h].result].concat(i[k].cases[h].args))){v.className="result success";v.innerHTML="Pass";n++}else{if(i[k].cases[h].fail.apply(null,[i[k].cases[h].result].concat(i[k].cases[h].args))){v.className="result fail";v.innerHTML="Fail";e++}else{v.className="result unknown";v.innerHTML="Unknown";j++}}r.appendChild(v);v=document.createElement("td");v.className="time";v.innerHTML=o;r.appendChild(v);h++;d++;if(i[k].cases.length==h){h=0;k++;r=document.createElement("tr");v=document.createElement("td");v.className="divider";v.colSpan="7";v.innerHTML="&nbsp;";r.appendChild(v);f.appendChild(r)}if(k<i.length){setTimeout(b,0)}else{m()}}b();function m(){var s=document.createElement("table");s.cellSpacing="0";s.cellPadding="0";s.className="ng-unit-test";var o=document.createElement("tbody");s.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var q=document.createElement("th");q.innerHTML="Test Time";r.appendChild(q);q=document.createElement("th");q.innerHTML="Success Rate";r.appendChild(q);q=document.createElement("th");q.innerHTML="Fail Rate";r.appendChild(q);q=document.createElement("th");q.innerHTML="Unknow Rate";r.appendChild(q);r=document.createElement("tr");o.appendChild(r);var t=document.createElement("td");t.innerHTML=a+" ms";r.appendChild(t);t=document.createElement("td");t.className="result success";t.innerHTML=(Math.round(((n/d)*100)*100)/100)+"% ("+n+" of "+d+")";r.appendChild(t);t=document.createElement("td");t.className="result fail";t.innerHTML=(Math.round(((e/d)*100)*100)/100)+"% ("+e+" of "+d+")";r.appendChild(t);t=document.createElement("td");t.className="result unknown";t.innerHTML=(Math.round(((j/d)*100)*100)/100)+"% ("+j+" of "+d+")";r.appendChild(t);var p=document.createElement("span");p.innerHTML="<br /><br />&nbsp;";if(__main_test_area){document.getElementById(__main_test_area).appendChild(p);document.getElementById(__main_test_area).appendChild(s)}else{document.body.appendChild(p);document.body.appendChild(s)}}}function ng_load_script(c,b){var a=document.createElement("script");a.type="text/javascript";a.src=c;if(b){a.onreadystatechange=function(){if((a.readyState=="complete")||(a.readyState=="loaded")){b.call();b=function(){}}};a.onload=b}document.getElementsByTagName("head")[0].appendChild(a)}function ng_update_html(c,b,a){if(a){document.getElementById(c).innerHTML=b}else{document.getElementById(c).innerHTML+=b}}function ng_load_html(g,d){var f;try{f=new ActiveXObject("Msxml2.XMLHTTP")}catch(c){try{f=new ActiveXObject("Microsoft.XMLHTTP")}catch(b){try{f=new XMLHttpRequest()}catch(a){f=false}}}f.onreadystatechange=function(){if(f.readyState==4){if((location.protocol=="file:")&&(f.status==0)){var e=f.responseText;var h=true}else{if(f.status==200){var e=f.responseText;var h=true}else{var e=f.status;var h=false}}if(__main_test_area){document.getElementById(__main_test_area).innerHTML=e}else{var i=document.createElement("div");i.innerHTML=e;document.body.appendChild(i)}if(h){if(d){d.call()}}}};f.open("GET",g,true);f.send(null)};

