/* automatically generated by JSCoverage - do not edit */
try {
  if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) {
    // this is a browser window that was opened from another window

    if (! top.opener._$jscoverage) {
      top.opener._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null) {
    // this is a browser window

    try {
      if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) {
        top._$jscoverage = top.opener._$jscoverage;
      }
    }
    catch (e) {}

    if (! top._$jscoverage) {
      top._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null && top._$jscoverage) {
    this._$jscoverage = top._$jscoverage;
  }
}
catch (e) {}
if (! this._$jscoverage) {
  this._$jscoverage = {};
}
if (! _$jscoverage['app/jsUnitCore.js']) {
  _$jscoverage['app/jsUnitCore.js'] = [];
  _$jscoverage['app/jsUnitCore.js'][11] = 0;
  _$jscoverage['app/jsUnitCore.js'][17] = 0;
  _$jscoverage['app/jsUnitCore.js'][18] = 0;
  _$jscoverage['app/jsUnitCore.js'][23] = 0;
  _$jscoverage['app/jsUnitCore.js'][28] = 0;
  _$jscoverage['app/jsUnitCore.js'][33] = 0;
  _$jscoverage['app/jsUnitCore.js'][38] = 0;
  _$jscoverage['app/jsUnitCore.js'][43] = 0;
  _$jscoverage['app/jsUnitCore.js'][48] = 0;
  _$jscoverage['app/jsUnitCore.js'][61] = 0;
  _$jscoverage['app/jsUnitCore.js'][62] = 0;
  _$jscoverage['app/jsUnitCore.js'][63] = 0;
  _$jscoverage['app/jsUnitCore.js'][64] = 0;
  _$jscoverage['app/jsUnitCore.js'][65] = 0;
  _$jscoverage['app/jsUnitCore.js'][66] = 0;
  _$jscoverage['app/jsUnitCore.js'][67] = 0;
  _$jscoverage['app/jsUnitCore.js'][68] = 0;
  _$jscoverage['app/jsUnitCore.js'][69] = 0;
  _$jscoverage['app/jsUnitCore.js'][73] = 0;
  _$jscoverage['app/jsUnitCore.js'][74] = 0;
  _$jscoverage['app/jsUnitCore.js'][79] = 0;
  _$jscoverage['app/jsUnitCore.js'][86] = 0;
  _$jscoverage['app/jsUnitCore.js'][87] = 0;
  _$jscoverage['app/jsUnitCore.js'][88] = 0;
  _$jscoverage['app/jsUnitCore.js'][89] = 0;
  _$jscoverage['app/jsUnitCore.js'][91] = 0;
  _$jscoverage['app/jsUnitCore.js'][93] = 0;
  _$jscoverage['app/jsUnitCore.js'][95] = 0;
  _$jscoverage['app/jsUnitCore.js'][98] = 0;
  _$jscoverage['app/jsUnitCore.js'][100] = 0;
  _$jscoverage['app/jsUnitCore.js'][101] = 0;
  _$jscoverage['app/jsUnitCore.js'][103] = 0;
  _$jscoverage['app/jsUnitCore.js'][104] = 0;
  _$jscoverage['app/jsUnitCore.js'][106] = 0;
  _$jscoverage['app/jsUnitCore.js'][107] = 0;
  _$jscoverage['app/jsUnitCore.js'][109] = 0;
  _$jscoverage['app/jsUnitCore.js'][110] = 0;
  _$jscoverage['app/jsUnitCore.js'][112] = 0;
  _$jscoverage['app/jsUnitCore.js'][113] = 0;
  _$jscoverage['app/jsUnitCore.js'][115] = 0;
  _$jscoverage['app/jsUnitCore.js'][116] = 0;
  _$jscoverage['app/jsUnitCore.js'][118] = 0;
  _$jscoverage['app/jsUnitCore.js'][119] = 0;
  _$jscoverage['app/jsUnitCore.js'][121] = 0;
  _$jscoverage['app/jsUnitCore.js'][122] = 0;
  _$jscoverage['app/jsUnitCore.js'][123] = 0;
  _$jscoverage['app/jsUnitCore.js'][125] = 0;
  _$jscoverage['app/jsUnitCore.js'][127] = 0;
  _$jscoverage['app/jsUnitCore.js'][131] = 0;
  _$jscoverage['app/jsUnitCore.js'][132] = 0;
  _$jscoverage['app/jsUnitCore.js'][139] = 0;
  _$jscoverage['app/jsUnitCore.js'][140] = 0;
  _$jscoverage['app/jsUnitCore.js'][141] = 0;
  _$jscoverage['app/jsUnitCore.js'][142] = 0;
  _$jscoverage['app/jsUnitCore.js'][144] = 0;
  _$jscoverage['app/jsUnitCore.js'][150] = 0;
  _$jscoverage['app/jsUnitCore.js'][151] = 0;
  _$jscoverage['app/jsUnitCore.js'][156] = 0;
  _$jscoverage['app/jsUnitCore.js'][157] = 0;
  _$jscoverage['app/jsUnitCore.js'][158] = 0;
  _$jscoverage['app/jsUnitCore.js'][160] = 0;
  _$jscoverage['app/jsUnitCore.js'][165] = 0;
  _$jscoverage['app/jsUnitCore.js'][166] = 0;
  _$jscoverage['app/jsUnitCore.js'][174] = 0;
  _$jscoverage['app/jsUnitCore.js'][175] = 0;
  _$jscoverage['app/jsUnitCore.js'][177] = 0;
  _$jscoverage['app/jsUnitCore.js'][183] = 0;
  _$jscoverage['app/jsUnitCore.js'][184] = 0;
  _$jscoverage['app/jsUnitCore.js'][190] = 0;
  _$jscoverage['app/jsUnitCore.js'][191] = 0;
  _$jscoverage['app/jsUnitCore.js'][197] = 0;
  _$jscoverage['app/jsUnitCore.js'][198] = 0;
  _$jscoverage['app/jsUnitCore.js'][205] = 0;
  _$jscoverage['app/jsUnitCore.js'][206] = 0;
  _$jscoverage['app/jsUnitCore.js'][207] = 0;
  _$jscoverage['app/jsUnitCore.js'][217] = 0;
  _$jscoverage['app/jsUnitCore.js'][218] = 0;
  _$jscoverage['app/jsUnitCore.js'][219] = 0;
  _$jscoverage['app/jsUnitCore.js'][221] = 0;
  _$jscoverage['app/jsUnitCore.js'][222] = 0;
  _$jscoverage['app/jsUnitCore.js'][224] = 0;
  _$jscoverage['app/jsUnitCore.js'][231] = 0;
  _$jscoverage['app/jsUnitCore.js'][232] = 0;
  _$jscoverage['app/jsUnitCore.js'][233] = 0;
  _$jscoverage['app/jsUnitCore.js'][243] = 0;
  _$jscoverage['app/jsUnitCore.js'][244] = 0;
  _$jscoverage['app/jsUnitCore.js'][245] = 0;
  _$jscoverage['app/jsUnitCore.js'][247] = 0;
  _$jscoverage['app/jsUnitCore.js'][248] = 0;
  _$jscoverage['app/jsUnitCore.js'][250] = 0;
  _$jscoverage['app/jsUnitCore.js'][261] = 0;
  _$jscoverage['app/jsUnitCore.js'][262] = 0;
  _$jscoverage['app/jsUnitCore.js'][263] = 0;
  _$jscoverage['app/jsUnitCore.js'][264] = 0;
  _$jscoverage['app/jsUnitCore.js'][265] = 0;
  _$jscoverage['app/jsUnitCore.js'][276] = 0;
  _$jscoverage['app/jsUnitCore.js'][277] = 0;
  _$jscoverage['app/jsUnitCore.js'][278] = 0;
  _$jscoverage['app/jsUnitCore.js'][279] = 0;
  _$jscoverage['app/jsUnitCore.js'][280] = 0;
  _$jscoverage['app/jsUnitCore.js'][290] = 0;
  _$jscoverage['app/jsUnitCore.js'][291] = 0;
  _$jscoverage['app/jsUnitCore.js'][292] = 0;
  _$jscoverage['app/jsUnitCore.js'][293] = 0;
  _$jscoverage['app/jsUnitCore.js'][303] = 0;
  _$jscoverage['app/jsUnitCore.js'][304] = 0;
  _$jscoverage['app/jsUnitCore.js'][305] = 0;
  _$jscoverage['app/jsUnitCore.js'][306] = 0;
  _$jscoverage['app/jsUnitCore.js'][316] = 0;
  _$jscoverage['app/jsUnitCore.js'][317] = 0;
  _$jscoverage['app/jsUnitCore.js'][318] = 0;
  _$jscoverage['app/jsUnitCore.js'][319] = 0;
  _$jscoverage['app/jsUnitCore.js'][329] = 0;
  _$jscoverage['app/jsUnitCore.js'][330] = 0;
  _$jscoverage['app/jsUnitCore.js'][331] = 0;
  _$jscoverage['app/jsUnitCore.js'][332] = 0;
  _$jscoverage['app/jsUnitCore.js'][342] = 0;
  _$jscoverage['app/jsUnitCore.js'][343] = 0;
  _$jscoverage['app/jsUnitCore.js'][344] = 0;
  _$jscoverage['app/jsUnitCore.js'][345] = 0;
  _$jscoverage['app/jsUnitCore.js'][355] = 0;
  _$jscoverage['app/jsUnitCore.js'][356] = 0;
  _$jscoverage['app/jsUnitCore.js'][357] = 0;
  _$jscoverage['app/jsUnitCore.js'][358] = 0;
  _$jscoverage['app/jsUnitCore.js'][370] = 0;
  _$jscoverage['app/jsUnitCore.js'][371] = 0;
  _$jscoverage['app/jsUnitCore.js'][372] = 0;
  _$jscoverage['app/jsUnitCore.js'][373] = 0;
  _$jscoverage['app/jsUnitCore.js'][374] = 0;
  _$jscoverage['app/jsUnitCore.js'][375] = 0;
  _$jscoverage['app/jsUnitCore.js'][376] = 0;
  _$jscoverage['app/jsUnitCore.js'][378] = 0;
  _$jscoverage['app/jsUnitCore.js'][380] = 0;
  _$jscoverage['app/jsUnitCore.js'][381] = 0;
  _$jscoverage['app/jsUnitCore.js'][383] = 0;
  _$jscoverage['app/jsUnitCore.js'][384] = 0;
  _$jscoverage['app/jsUnitCore.js'][385] = 0;
  _$jscoverage['app/jsUnitCore.js'][386] = 0;
  _$jscoverage['app/jsUnitCore.js'][388] = 0;
  _$jscoverage['app/jsUnitCore.js'][389] = 0;
  _$jscoverage['app/jsUnitCore.js'][390] = 0;
  _$jscoverage['app/jsUnitCore.js'][391] = 0;
  _$jscoverage['app/jsUnitCore.js'][393] = 0;
  _$jscoverage['app/jsUnitCore.js'][394] = 0;
  _$jscoverage['app/jsUnitCore.js'][396] = 0;
  _$jscoverage['app/jsUnitCore.js'][399] = 0;
  _$jscoverage['app/jsUnitCore.js'][410] = 0;
  _$jscoverage['app/jsUnitCore.js'][411] = 0;
  _$jscoverage['app/jsUnitCore.js'][412] = 0;
  _$jscoverage['app/jsUnitCore.js'][413] = 0;
  _$jscoverage['app/jsUnitCore.js'][414] = 0;
  _$jscoverage['app/jsUnitCore.js'][415] = 0;
  _$jscoverage['app/jsUnitCore.js'][417] = 0;
  _$jscoverage['app/jsUnitCore.js'][427] = 0;
  _$jscoverage['app/jsUnitCore.js'][428] = 0;
  _$jscoverage['app/jsUnitCore.js'][429] = 0;
  _$jscoverage['app/jsUnitCore.js'][430] = 0;
  _$jscoverage['app/jsUnitCore.js'][431] = 0;
  _$jscoverage['app/jsUnitCore.js'][441] = 0;
  _$jscoverage['app/jsUnitCore.js'][442] = 0;
  _$jscoverage['app/jsUnitCore.js'][443] = 0;
  _$jscoverage['app/jsUnitCore.js'][444] = 0;
  _$jscoverage['app/jsUnitCore.js'][445] = 0;
  _$jscoverage['app/jsUnitCore.js'][458] = 0;
  _$jscoverage['app/jsUnitCore.js'][459] = 0;
  _$jscoverage['app/jsUnitCore.js'][460] = 0;
  _$jscoverage['app/jsUnitCore.js'][461] = 0;
  _$jscoverage['app/jsUnitCore.js'][462] = 0;
  _$jscoverage['app/jsUnitCore.js'][463] = 0;
  _$jscoverage['app/jsUnitCore.js'][465] = 0;
  _$jscoverage['app/jsUnitCore.js'][478] = 0;
  _$jscoverage['app/jsUnitCore.js'][479] = 0;
  _$jscoverage['app/jsUnitCore.js'][480] = 0;
  _$jscoverage['app/jsUnitCore.js'][481] = 0;
  _$jscoverage['app/jsUnitCore.js'][482] = 0;
  _$jscoverage['app/jsUnitCore.js'][483] = 0;
  _$jscoverage['app/jsUnitCore.js'][484] = 0;
  _$jscoverage['app/jsUnitCore.js'][489] = 0;
  _$jscoverage['app/jsUnitCore.js'][490] = 0;
  _$jscoverage['app/jsUnitCore.js'][503] = 0;
  _$jscoverage['app/jsUnitCore.js'][504] = 0;
  _$jscoverage['app/jsUnitCore.js'][505] = 0;
  _$jscoverage['app/jsUnitCore.js'][506] = 0;
  _$jscoverage['app/jsUnitCore.js'][507] = 0;
  _$jscoverage['app/jsUnitCore.js'][508] = 0;
  _$jscoverage['app/jsUnitCore.js'][522] = 0;
  _$jscoverage['app/jsUnitCore.js'][523] = 0;
  _$jscoverage['app/jsUnitCore.js'][524] = 0;
  _$jscoverage['app/jsUnitCore.js'][525] = 0;
  _$jscoverage['app/jsUnitCore.js'][526] = 0;
  _$jscoverage['app/jsUnitCore.js'][540] = 0;
  _$jscoverage['app/jsUnitCore.js'][541] = 0;
  _$jscoverage['app/jsUnitCore.js'][542] = 0;
  _$jscoverage['app/jsUnitCore.js'][543] = 0;
  _$jscoverage['app/jsUnitCore.js'][545] = 0;
  _$jscoverage['app/jsUnitCore.js'][546] = 0;
  _$jscoverage['app/jsUnitCore.js'][548] = 0;
  _$jscoverage['app/jsUnitCore.js'][549] = 0;
  _$jscoverage['app/jsUnitCore.js'][551] = 0;
  _$jscoverage['app/jsUnitCore.js'][552] = 0;
  _$jscoverage['app/jsUnitCore.js'][553] = 0;
  _$jscoverage['app/jsUnitCore.js'][554] = 0;
  _$jscoverage['app/jsUnitCore.js'][556] = 0;
  _$jscoverage['app/jsUnitCore.js'][558] = 0;
  _$jscoverage['app/jsUnitCore.js'][559] = 0;
  _$jscoverage['app/jsUnitCore.js'][560] = 0;
  _$jscoverage['app/jsUnitCore.js'][561] = 0;
  _$jscoverage['app/jsUnitCore.js'][562] = 0;
  _$jscoverage['app/jsUnitCore.js'][563] = 0;
  _$jscoverage['app/jsUnitCore.js'][567] = 0;
  _$jscoverage['app/jsUnitCore.js'][575] = 0;
  _$jscoverage['app/jsUnitCore.js'][576] = 0;
  _$jscoverage['app/jsUnitCore.js'][577] = 0;
  _$jscoverage['app/jsUnitCore.js'][584] = 0;
  _$jscoverage['app/jsUnitCore.js'][585] = 0;
  _$jscoverage['app/jsUnitCore.js'][592] = 0;
  _$jscoverage['app/jsUnitCore.js'][593] = 0;
  _$jscoverage['app/jsUnitCore.js'][602] = 0;
  _$jscoverage['app/jsUnitCore.js'][607] = 0;
  _$jscoverage['app/jsUnitCore.js'][611] = 0;
  _$jscoverage['app/jsUnitCore.js'][615] = 0;
  _$jscoverage['app/jsUnitCore.js'][619] = 0;
  _$jscoverage['app/jsUnitCore.js'][625] = 0;
  _$jscoverage['app/jsUnitCore.js'][632] = 0;
  _$jscoverage['app/jsUnitCore.js'][636] = 0;
  _$jscoverage['app/jsUnitCore.js'][640] = 0;
  _$jscoverage['app/jsUnitCore.js'][646] = 0;
  _$jscoverage['app/jsUnitCore.js'][654] = 0;
  _$jscoverage['app/jsUnitCore.js'][658] = 0;
  _$jscoverage['app/jsUnitCore.js'][661] = 0;
  _$jscoverage['app/jsUnitCore.js'][662] = 0;
  _$jscoverage['app/jsUnitCore.js'][668] = 0;
  _$jscoverage['app/jsUnitCore.js'][674] = 0;
  _$jscoverage['app/jsUnitCore.js'][677] = 0;
  _$jscoverage['app/jsUnitCore.js'][678] = 0;
  _$jscoverage['app/jsUnitCore.js'][679] = 0;
  _$jscoverage['app/jsUnitCore.js'][682] = 0;
  _$jscoverage['app/jsUnitCore.js'][683] = 0;
  _$jscoverage['app/jsUnitCore.js'][684] = 0;
  _$jscoverage['app/jsUnitCore.js'][687] = 0;
  _$jscoverage['app/jsUnitCore.js'][688] = 0;
  _$jscoverage['app/jsUnitCore.js'][691] = 0;
  _$jscoverage['app/jsUnitCore.js'][692] = 0;
  _$jscoverage['app/jsUnitCore.js'][693] = 0;
  _$jscoverage['app/jsUnitCore.js'][702] = 0;
  _$jscoverage['app/jsUnitCore.js'][706] = 0;
  _$jscoverage['app/jsUnitCore.js'][710] = 0;
  _$jscoverage['app/jsUnitCore.js'][714] = 0;
  _$jscoverage['app/jsUnitCore.js'][716] = 0;
  _$jscoverage['app/jsUnitCore.js'][717] = 0;
  _$jscoverage['app/jsUnitCore.js'][718] = 0;
  _$jscoverage['app/jsUnitCore.js'][720] = 0;
  _$jscoverage['app/jsUnitCore.js'][729] = 0;
  _$jscoverage['app/jsUnitCore.js'][730] = 0;
  _$jscoverage['app/jsUnitCore.js'][738] = 0;
  _$jscoverage['app/jsUnitCore.js'][739] = 0;
  _$jscoverage['app/jsUnitCore.js'][740] = 0;
  _$jscoverage['app/jsUnitCore.js'][746] = 0;
  _$jscoverage['app/jsUnitCore.js'][747] = 0;
  _$jscoverage['app/jsUnitCore.js'][753] = 0;
  _$jscoverage['app/jsUnitCore.js'][754] = 0;
  _$jscoverage['app/jsUnitCore.js'][760] = 0;
  _$jscoverage['app/jsUnitCore.js'][761] = 0;
  _$jscoverage['app/jsUnitCore.js'][767] = 0;
  _$jscoverage['app/jsUnitCore.js'][768] = 0;
  _$jscoverage['app/jsUnitCore.js'][769] = 0;
  _$jscoverage['app/jsUnitCore.js'][770] = 0;
  _$jscoverage['app/jsUnitCore.js'][774] = 0;
  _$jscoverage['app/jsUnitCore.js'][776] = 0;
  _$jscoverage['app/jsUnitCore.js'][777] = 0;
  _$jscoverage['app/jsUnitCore.js'][780] = 0;
  _$jscoverage['app/jsUnitCore.js'][781] = 0;
  _$jscoverage['app/jsUnitCore.js'][784] = 0;
  _$jscoverage['app/jsUnitCore.js'][785] = 0;
  _$jscoverage['app/jsUnitCore.js'][788] = 0;
  _$jscoverage['app/jsUnitCore.js'][789] = 0;
  _$jscoverage['app/jsUnitCore.js'][791] = 0;
  _$jscoverage['app/jsUnitCore.js'][793] = 0;
  _$jscoverage['app/jsUnitCore.js'][794] = 0;
  _$jscoverage['app/jsUnitCore.js'][797] = 0;
  _$jscoverage['app/jsUnitCore.js'][798] = 0;
  _$jscoverage['app/jsUnitCore.js'][801] = 0;
  _$jscoverage['app/jsUnitCore.js'][802] = 0;
  _$jscoverage['app/jsUnitCore.js'][803] = 0;
  _$jscoverage['app/jsUnitCore.js'][804] = 0;
  _$jscoverage['app/jsUnitCore.js'][805] = 0;
  _$jscoverage['app/jsUnitCore.js'][806] = 0;
  _$jscoverage['app/jsUnitCore.js'][811] = 0;
  _$jscoverage['app/jsUnitCore.js'][820] = 0;
  _$jscoverage['app/jsUnitCore.js'][827] = 0;
  _$jscoverage['app/jsUnitCore.js'][828] = 0;
  _$jscoverage['app/jsUnitCore.js'][829] = 0;
  _$jscoverage['app/jsUnitCore.js'][830] = 0;
  _$jscoverage['app/jsUnitCore.js'][837] = 0;
  _$jscoverage['app/jsUnitCore.js'][838] = 0;
  _$jscoverage['app/jsUnitCore.js'][846] = 0;
  _$jscoverage['app/jsUnitCore.js'][847] = 0;
  _$jscoverage['app/jsUnitCore.js'][854] = 0;
  _$jscoverage['app/jsUnitCore.js'][855] = 0;
  _$jscoverage['app/jsUnitCore.js'][856] = 0;
  _$jscoverage['app/jsUnitCore.js'][857] = 0;
  _$jscoverage['app/jsUnitCore.js'][865] = 0;
  _$jscoverage['app/jsUnitCore.js'][866] = 0;
  _$jscoverage['app/jsUnitCore.js'][867] = 0;
  _$jscoverage['app/jsUnitCore.js'][868] = 0;
  _$jscoverage['app/jsUnitCore.js'][870] = 0;
  _$jscoverage['app/jsUnitCore.js'][876] = 0;
  _$jscoverage['app/jsUnitCore.js'][877] = 0;
  _$jscoverage['app/jsUnitCore.js'][879] = 0;
  _$jscoverage['app/jsUnitCore.js'][880] = 0;
  _$jscoverage['app/jsUnitCore.js'][881] = 0;
  _$jscoverage['app/jsUnitCore.js'][882] = 0;
  _$jscoverage['app/jsUnitCore.js'][883] = 0;
  _$jscoverage['app/jsUnitCore.js'][884] = 0;
  _$jscoverage['app/jsUnitCore.js'][890] = 0;
  _$jscoverage['app/jsUnitCore.js'][892] = 0;
  _$jscoverage['app/jsUnitCore.js'][896] = 0;
  _$jscoverage['app/jsUnitCore.js'][897] = 0;
  _$jscoverage['app/jsUnitCore.js'][899] = 0;
  _$jscoverage['app/jsUnitCore.js'][904] = 0;
  _$jscoverage['app/jsUnitCore.js'][911] = 0;
  _$jscoverage['app/jsUnitCore.js'][912] = 0;
  _$jscoverage['app/jsUnitCore.js'][913] = 0;
  _$jscoverage['app/jsUnitCore.js'][915] = 0;
  _$jscoverage['app/jsUnitCore.js'][916] = 0;
  _$jscoverage['app/jsUnitCore.js'][919] = 0;
  _$jscoverage['app/jsUnitCore.js'][921] = 0;
  _$jscoverage['app/jsUnitCore.js'][922] = 0;
  _$jscoverage['app/jsUnitCore.js'][924] = 0;
  _$jscoverage['app/jsUnitCore.js'][925] = 0;
  _$jscoverage['app/jsUnitCore.js'][926] = 0;
  _$jscoverage['app/jsUnitCore.js'][929] = 0;
  _$jscoverage['app/jsUnitCore.js'][933] = 0;
  _$jscoverage['app/jsUnitCore.js'][934] = 0;
  _$jscoverage['app/jsUnitCore.js'][936] = 0;
  _$jscoverage['app/jsUnitCore.js'][943] = 0;
  _$jscoverage['app/jsUnitCore.js'][944] = 0;
  _$jscoverage['app/jsUnitCore.js'][945] = 0;
  _$jscoverage['app/jsUnitCore.js'][947] = 0;
  _$jscoverage['app/jsUnitCore.js'][948] = 0;
  _$jscoverage['app/jsUnitCore.js'][950] = 0;
  _$jscoverage['app/jsUnitCore.js'][951] = 0;
  _$jscoverage['app/jsUnitCore.js'][952] = 0;
  _$jscoverage['app/jsUnitCore.js'][954] = 0;
  _$jscoverage['app/jsUnitCore.js'][955] = 0;
  _$jscoverage['app/jsUnitCore.js'][957] = 0;
  _$jscoverage['app/jsUnitCore.js'][958] = 0;
  _$jscoverage['app/jsUnitCore.js'][960] = 0;
  _$jscoverage['app/jsUnitCore.js'][963] = 0;
  _$jscoverage['app/jsUnitCore.js'][964] = 0;
  _$jscoverage['app/jsUnitCore.js'][965] = 0;
  _$jscoverage['app/jsUnitCore.js'][966] = 0;
  _$jscoverage['app/jsUnitCore.js'][968] = 0;
  _$jscoverage['app/jsUnitCore.js'][971] = 0;
  _$jscoverage['app/jsUnitCore.js'][972] = 0;
  _$jscoverage['app/jsUnitCore.js'][973] = 0;
  _$jscoverage['app/jsUnitCore.js'][974] = 0;
  _$jscoverage['app/jsUnitCore.js'][977] = 0;
}
_$jscoverage['app/jsUnitCore.js'].source = ["<span class=\"c\">/**</span>","<span class=\"c\"> * @fileoverview</span>","<span class=\"c\"> * jsUnitCore.js contains the implementation of the core JsUnit functionality: assertions, JsUnitTestSuites, and JsUnit.Failure.</span>","<span class=\"c\"> * An HTML page is considered to be a JsUnit Test Page if it \"includes\" jsUnitCore.js, i.e. the following line is present:</span>","<span class=\"c\"> * &lt;code&gt;</span>","<span class=\"c\"> * &amp;lt;script type=\"text/javascript\" src=\"/path/to/jsUnitCore.js\"&amp;gt;&amp;lt;/script&amp;gt;</span>","<span class=\"c\"> * &lt;/code&gt;</span>","<span class=\"c\"> * @author Edward Hieatt, edward@jsunit.net, http://www.jsunit.net</span>","<span class=\"c\"> */</span>","","<span class=\"k\">var</span> JsUnit <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * The JsUnit version</span>","<span class=\"c\"> * @version</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>VERSION <span class=\"k\">=</span> <span class=\"s\">2.2</span><span class=\"k\">;</span>","<span class=\"k\">var</span> JSUNIT_VERSION <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>VERSION<span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * For convenience, a variable that equals \"undefined\"</span>","<span class=\"c\"> */</span>","<span class=\"k\">var</span> JSUNIT_UNDEFINED_VALUE<span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Whether or not the current test page has been (completely) loaded yet</span>","<span class=\"c\"> */</span>","<span class=\"k\">var</span> isTestPageLoaded <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Predicate used for testing JavaScript == (i.e. equality excluding type)</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>DOUBLE_EQUALITY_PREDICATE <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>var1<span class=\"k\">,</span> var2<span class=\"k\">)</span> <span class=\"k\">{</span><span class=\"k\">return</span> var1 <span class=\"k\">==</span> var2<span class=\"k\">;</span><span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Predicate used for testing JavaScript === (i.e. equality including type)</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>TRIPLE_EQUALITY_PREDICATE <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>var1<span class=\"k\">,</span> var2<span class=\"k\">)</span> <span class=\"k\">{</span><span class=\"k\">return</span> var1 <span class=\"k\">===</span> var2<span class=\"k\">;</span><span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Predicate used for testing whether two obects' toStrings are equal</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>TO_STRING_EQUALITY_PREDICATE <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>var1<span class=\"k\">,</span> var2<span class=\"k\">)</span> <span class=\"k\">{</span><span class=\"k\">return</span> var1<span class=\"k\">.</span>toString<span class=\"k\">()</span> <span class=\"k\">===</span> var2<span class=\"k\">.</span>toString<span class=\"k\">();</span><span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Hash of predicates for testing equality by primitive type</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>PRIMITIVE_EQUALITY_PREDICATES <span class=\"k\">=</span> <span class=\"k\">{</span>","    <span class=\"s\">'String'</span><span class=\"k\">:</span>   JsUnit<span class=\"k\">.</span>DOUBLE_EQUALITY_PREDICATE<span class=\"k\">,</span>","    <span class=\"s\">'Number'</span><span class=\"k\">:</span>   JsUnit<span class=\"k\">.</span>DOUBLE_EQUALITY_PREDICATE<span class=\"k\">,</span>","    <span class=\"s\">'Boolean'</span><span class=\"k\">:</span>  JsUnit<span class=\"k\">.</span>DOUBLE_EQUALITY_PREDICATE<span class=\"k\">,</span>","    <span class=\"s\">'Date'</span><span class=\"k\">:</span>     JsUnit<span class=\"k\">.</span>TRIPLE_EQUALITY_PREDICATE<span class=\"k\">,</span>","    <span class=\"s\">'RegExp'</span><span class=\"k\">:</span>   JsUnit<span class=\"k\">.</span>TO_STRING_EQUALITY_PREDICATE<span class=\"k\">,</span>","    <span class=\"s\">'Function'</span><span class=\"k\">:</span> JsUnit<span class=\"k\">.</span>TO_STRING_EQUALITY_PREDICATE","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Hack for NS62 bug</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_fixTop <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> tempTop <span class=\"k\">=</span> top<span class=\"k\">;</span>","    <span class=\"k\">if</span> <span class=\"k\">(!</span>tempTop<span class=\"k\">)</span> <span class=\"k\">{</span>","        tempTop <span class=\"k\">=</span> window<span class=\"k\">;</span>","        <span class=\"k\">while</span> <span class=\"k\">(</span>tempTop<span class=\"k\">.</span>parent<span class=\"k\">)</span> <span class=\"k\">{</span>","            tempTop <span class=\"k\">=</span> tempTop<span class=\"k\">.</span>parent<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>tempTop<span class=\"k\">.</span>top <span class=\"k\">&amp;&amp;</span> tempTop<span class=\"k\">.</span>top<span class=\"k\">.</span>jsUnitTestSuite<span class=\"k\">)</span> <span class=\"k\">{</span>","                tempTop <span class=\"k\">=</span> tempTop<span class=\"k\">.</span>top<span class=\"k\">;</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","    <span class=\"k\">try</span> <span class=\"k\">{</span>","        window<span class=\"k\">.</span>top <span class=\"k\">=</span> tempTop<span class=\"k\">;</span>","    <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","JsUnit<span class=\"k\">.</span>_fixTop<span class=\"k\">();</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @param Any object</span>","<span class=\"c\"> * @return String - the type of the given object</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_trueTypeOf <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>something<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> result <span class=\"k\">=</span> <span class=\"k\">typeof</span> something<span class=\"k\">;</span>","    <span class=\"k\">try</span> <span class=\"k\">{</span>","        <span class=\"k\">switch</span> <span class=\"k\">(</span>result<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">case</span> <span class=\"s\">'string'</span><span class=\"k\">:</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">case</span> <span class=\"s\">'boolean'</span><span class=\"k\">:</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">case</span> <span class=\"s\">'number'</span><span class=\"k\">:</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">case</span> <span class=\"s\">'object'</span><span class=\"k\">:</span>","            <span class=\"k\">case</span> <span class=\"s\">'function'</span><span class=\"k\">:</span>","                <span class=\"k\">switch</span> <span class=\"k\">(</span>something<span class=\"k\">.</span>constructor<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">case</span> <span class=\"k\">new</span> String<span class=\"k\">().</span>constructor<span class=\"k\">:</span>","                        result <span class=\"k\">=</span> <span class=\"s\">'String'</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">case</span> <span class=\"k\">new</span> Boolean<span class=\"k\">().</span>constructor<span class=\"k\">:</span>","                        result <span class=\"k\">=</span> <span class=\"s\">'Boolean'</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">case</span> <span class=\"k\">new</span> Number<span class=\"k\">().</span>constructor<span class=\"k\">:</span>","                        result <span class=\"k\">=</span> <span class=\"s\">'Number'</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">case</span> <span class=\"k\">new</span> Array<span class=\"k\">().</span>constructor<span class=\"k\">:</span>","                        result <span class=\"k\">=</span> <span class=\"s\">'Array'</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">case</span> <span class=\"k\">new</span> RegExp<span class=\"k\">().</span>constructor<span class=\"k\">:</span>","                        result <span class=\"k\">=</span> <span class=\"s\">'RegExp'</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">case</span> <span class=\"k\">new</span> Date<span class=\"k\">().</span>constructor<span class=\"k\">:</span>","                        result <span class=\"k\">=</span> <span class=\"s\">'Date'</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">case</span> Function<span class=\"k\">:</span>","                        result <span class=\"k\">=</span> <span class=\"s\">'Function'</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">default</span><span class=\"k\">:</span>","                        <span class=\"k\">var</span> m <span class=\"k\">=</span> something<span class=\"k\">.</span>constructor<span class=\"k\">.</span>toString<span class=\"k\">().</span>match<span class=\"k\">(</span><span class=\"s\">/function\\s*([^( ]+)\\(/</span><span class=\"k\">);</span>","                        <span class=\"k\">if</span> <span class=\"k\">(</span>m<span class=\"k\">)</span>","                            result <span class=\"k\">=</span> m<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">];</span>","                        <span class=\"k\">else</span>","                            <span class=\"k\">break</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","    <span class=\"k\">finally</span> <span class=\"k\">{</span>","        result <span class=\"k\">=</span> result<span class=\"k\">.</span>substr<span class=\"k\">(</span><span class=\"s\">0</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">).</span>toUpperCase<span class=\"k\">()</span> <span class=\"k\">+</span> result<span class=\"k\">.</span>substr<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">);</span>","        <span class=\"k\">return</span> result<span class=\"k\">;</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_displayStringForValue <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>aVar<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> result <span class=\"k\">=</span> <span class=\"s\">'&lt;'</span> <span class=\"k\">+</span> aVar <span class=\"k\">+</span> <span class=\"s\">'&gt;'</span><span class=\"k\">;</span>","    <span class=\"k\">if</span> <span class=\"k\">(!(</span>aVar <span class=\"k\">===</span> <span class=\"k\">null</span> <span class=\"k\">||</span> aVar <span class=\"k\">===</span> JSUNIT_UNDEFINED_VALUE<span class=\"k\">))</span> <span class=\"k\">{</span>","        result <span class=\"k\">+=</span> <span class=\"s\">' ('</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_trueTypeOf<span class=\"k\">(</span>aVar<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">')'</span><span class=\"k\">;</span>","    <span class=\"k\">}</span>","    <span class=\"k\">return</span> result<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_argumentsIncludeComments <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>expectedNumberOfNonCommentArgs<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> args<span class=\"k\">.</span>length <span class=\"k\">==</span> expectedNumberOfNonCommentArgs <span class=\"k\">+</span> <span class=\"s\">1</span><span class=\"k\">;</span>","<span class=\"k\">}</span>","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_commentArg <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>expectedNumberOfNonCommentArgs<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_argumentsIncludeComments<span class=\"k\">(</span>expectedNumberOfNonCommentArgs<span class=\"k\">,</span> args<span class=\"k\">))</span>","        <span class=\"k\">return</span> args<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">];</span>","","    <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","<span class=\"k\">}</span>","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_nonCommentArg <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>desiredNonCommentArgIndex<span class=\"k\">,</span> expectedNumberOfNonCommentArgs<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> JsUnit<span class=\"k\">.</span>_argumentsIncludeComments<span class=\"k\">(</span>expectedNumberOfNonCommentArgs<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">?</span>","           args<span class=\"k\">[</span>desiredNonCommentArgIndex<span class=\"k\">]</span> <span class=\"k\">:</span>","           args<span class=\"k\">[</span>desiredNonCommentArgIndex <span class=\"k\">-</span> <span class=\"s\">1</span><span class=\"k\">];</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_validateArguments <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>expectedNumberOfNonCommentArgs<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(!(</span> args<span class=\"k\">.</span>length <span class=\"k\">==</span> expectedNumberOfNonCommentArgs <span class=\"k\">||</span>","           <span class=\"k\">(</span>args<span class=\"k\">.</span>length <span class=\"k\">==</span> expectedNumberOfNonCommentArgs <span class=\"k\">+</span> <span class=\"s\">1</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>args<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">])</span> <span class=\"k\">==</span> <span class=\"s\">'string'</span><span class=\"k\">)</span> <span class=\"k\">||</span> args<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">==</span> <span class=\"k\">null</span><span class=\"k\">)))</span>","        <span class=\"k\">throw</span> <span class=\"k\">new</span> JsUnit<span class=\"k\">.</span>AssertionArgumentError<span class=\"k\">(</span><span class=\"s\">'Incorrect arguments passed to assert function'</span><span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_checkEquals <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>var1<span class=\"k\">,</span> var2<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> var1 <span class=\"k\">===</span> var2<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_checkNotUndefined <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>aVar<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> aVar <span class=\"k\">!==</span> JSUNIT_UNDEFINED_VALUE<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_checkNotNull <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>aVar<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> aVar <span class=\"k\">!==</span> <span class=\"k\">null</span><span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * All assertions ultimately go through this method.</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>_assert <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>comment<span class=\"k\">,</span> booleanValue<span class=\"k\">,</span> failureMessage<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(!</span>booleanValue<span class=\"k\">)</span>","        <span class=\"k\">throw</span> <span class=\"k\">new</span> JsUnit<span class=\"k\">.</span>Failure<span class=\"k\">(</span>comment<span class=\"k\">,</span> failureMessage<span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that the given boolean value is true.</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @value value that is expected to be true</span>","<span class=\"c\"> * @throws JsUnit.Failure if the given value is not true</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if the given value is not a boolean or if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assert<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> booleanValue <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","","    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>booleanValue<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'boolean'</span><span class=\"k\">)</span>","        <span class=\"k\">throw</span> <span class=\"k\">new</span> JsUnit<span class=\"k\">.</span>AssertionArgumentError<span class=\"k\">(</span><span class=\"s\">'Bad argument to assert(boolean)'</span><span class=\"k\">);</span>","","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> booleanValue <span class=\"k\">===</span> <span class=\"k\">true</span><span class=\"k\">,</span> <span class=\"s\">'Call to assert(boolean) with false'</span><span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Synonym for assertTrue</span>","<span class=\"c\"> * @see #assert</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertTrue<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a boolean value is false.</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @value value that is expected to be false</span>","<span class=\"c\"> * @throws JsUnit.Failure if value is not false</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if the given value is not a boolean or if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertFalse<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> booleanValue <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","","    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>booleanValue<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'boolean'</span><span class=\"k\">)</span>","        <span class=\"k\">throw</span> <span class=\"k\">new</span> JsUnit<span class=\"k\">.</span>AssertionArgumentError<span class=\"k\">(</span><span class=\"s\">'Bad argument to assertFalse(boolean)'</span><span class=\"k\">);</span>","","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> booleanValue <span class=\"k\">===</span> <span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"s\">'Call to assertFalse(boolean) with true'</span><span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that two values are equal (using ===)</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param expected the expected value</span>","<span class=\"c\"> * @param actual the actual value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the values are not equal</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertEquals<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkEquals<span class=\"k\">(</span>var1<span class=\"k\">,</span> var2<span class=\"k\">),</span> <span class=\"s\">'Expected '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var1<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">' but was '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var2<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that two values are not equal (using !==)</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value1 a value</span>","<span class=\"c\"> * @param value2 another value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the values are equal</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertNotEquals<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> var1 <span class=\"k\">!==</span> var2<span class=\"k\">,</span> <span class=\"s\">'Expected not to be '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var2<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value is null</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the value is not null</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertNull<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> aVar <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> aVar <span class=\"k\">===</span> <span class=\"k\">null</span><span class=\"k\">,</span> <span class=\"s\">'Expected '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span><span class=\"k\">null</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">' but was '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>aVar<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value is not null</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the value is null</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertNotNull<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> aVar <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotNull<span class=\"k\">(</span>aVar<span class=\"k\">),</span> <span class=\"s\">'Expected not to be '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span><span class=\"k\">null</span><span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value is undefined</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the value is not undefined</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertUndefined<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> aVar <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> aVar <span class=\"k\">===</span> JSUNIT_UNDEFINED_VALUE<span class=\"k\">,</span> <span class=\"s\">'Expected '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>JSUNIT_UNDEFINED_VALUE<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">' but was '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>aVar<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value is not undefined</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the value is undefined</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertNotUndefined<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> aVar <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotUndefined<span class=\"k\">(</span>aVar<span class=\"k\">),</span> <span class=\"s\">'Expected not to be '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>JSUNIT_UNDEFINED_VALUE<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value is NaN (Not a Number)</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the value is a number</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertNaN<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> aVar <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> isNaN<span class=\"k\">(</span>aVar<span class=\"k\">),</span> <span class=\"s\">'Expected NaN'</span><span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value is not NaN (i.e. is a number)</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the value is not a number</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertNotNaN<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> aVar <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> <span class=\"k\">!</span>isNaN<span class=\"k\">(</span>aVar<span class=\"k\">),</span> <span class=\"s\">'Expected not NaN'</span><span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that an object is equal to another using === for primitives and their object counterparts but also desceding</span>","<span class=\"c\"> * into collections and calling assertObjectEquals for each element</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the expected value</span>","<span class=\"c\"> * @param value the actual value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the actual value does not equal the expected value</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertObjectEquals<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> failureMessage <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">)</span> <span class=\"k\">?</span> JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">)</span> <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">;</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>var1 <span class=\"k\">===</span> var2<span class=\"k\">)</span>","        <span class=\"k\">return</span><span class=\"k\">;</span>","","    <span class=\"k\">var</span> isEqual <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","","    <span class=\"k\">var</span> typeOfVar1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_trueTypeOf<span class=\"k\">(</span>var1<span class=\"k\">);</span>","    <span class=\"k\">var</span> typeOfVar2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_trueTypeOf<span class=\"k\">(</span>var2<span class=\"k\">);</span>","","    <span class=\"k\">if</span> <span class=\"k\">(</span>typeOfVar1 <span class=\"k\">==</span> typeOfVar2<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> primitiveEqualityPredicate <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>PRIMITIVE_EQUALITY_PREDICATES<span class=\"k\">[</span>typeOfVar1<span class=\"k\">];</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>primitiveEqualityPredicate<span class=\"k\">)</span> <span class=\"k\">{</span>","            isEqual <span class=\"k\">=</span> primitiveEqualityPredicate<span class=\"k\">(</span>var1<span class=\"k\">,</span> var2<span class=\"k\">);</span>","        <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> expectedKeys <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getKeys<span class=\"k\">(</span>var1<span class=\"k\">).</span>sort<span class=\"k\">().</span>join<span class=\"k\">(</span><span class=\"s\">\", \"</span><span class=\"k\">);</span>","            <span class=\"k\">var</span> actualKeys <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getKeys<span class=\"k\">(</span>var2<span class=\"k\">).</span>sort<span class=\"k\">().</span>join<span class=\"k\">(</span><span class=\"s\">\", \"</span><span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>expectedKeys <span class=\"k\">!=</span> actualKeys<span class=\"k\">)</span> <span class=\"k\">{</span>","                JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>failureMessage<span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"s\">'Expected keys \"'</span> <span class=\"k\">+</span> expectedKeys <span class=\"k\">+</span> <span class=\"s\">'\" but found \"'</span> <span class=\"k\">+</span> actualKeys <span class=\"k\">+</span> <span class=\"s\">'\"'</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">in</span> var1<span class=\"k\">)</span> <span class=\"k\">{</span>","                assertObjectEquals<span class=\"k\">(</span>failureMessage <span class=\"k\">+</span> <span class=\"s\">' found nested '</span> <span class=\"k\">+</span> typeOfVar1 <span class=\"k\">+</span> <span class=\"s\">'@'</span> <span class=\"k\">+</span> i <span class=\"k\">+</span> <span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span><span class=\"k\">,</span> var1<span class=\"k\">[</span>i<span class=\"k\">],</span> var2<span class=\"k\">[</span>i<span class=\"k\">]);</span>","            <span class=\"k\">}</span>","            isEqual <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>failureMessage<span class=\"k\">,</span> isEqual<span class=\"k\">,</span> <span class=\"s\">'Expected '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var1<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">' but was '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var2<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that an array is equal to another by checking that both are arrays and then comparing their elements using assertObjectEquals</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the expected array</span>","<span class=\"c\"> * @param value the actual array</span>","<span class=\"c\"> * @throws JsUnit.Failure if the actual value does not equal the expected value</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertArrayEquals<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> array1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> array2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_trueTypeOf<span class=\"k\">(</span>array1<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'Array'</span> <span class=\"k\">||</span> JsUnit<span class=\"k\">.</span>_trueTypeOf<span class=\"k\">(</span>array2<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'Array'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">throw</span> <span class=\"k\">new</span> JsUnit<span class=\"k\">.</span>AssertionArgumentError<span class=\"k\">(</span><span class=\"s\">'Non-array passed to assertArrayEquals'</span><span class=\"k\">);</span>","    <span class=\"k\">}</span>","    assertObjectEquals<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value evaluates to true in the sense that value == true</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the actual value does not evaluate to true</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertEvaluatesToTrue<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> value <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">if</span> <span class=\"k\">(!</span>value<span class=\"k\">)</span>","        fail<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value evaluates to false in the sense that value == false</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the actual value does not evaluate to true</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertEvaluatesToFalse<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> value <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>value<span class=\"k\">)</span>","        fail<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a value is the same as an HTML string by \"standardizing\" both and comparing the result for equality.</span>","<span class=\"c\"> * Standardizing is done by temporarily creating a DIV, setting the innerHTML of the DIV to the string, and asking for</span>","<span class=\"c\"> * the innerHTML back.</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value1 the expected HTML string</span>","<span class=\"c\"> * @param value2 the actual HTML string</span>","<span class=\"c\"> * @throws JsUnit.Failure if the standardized actual value does not equal the standardized expected value</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertHTMLEquals<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var1Standardized <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>standardizeHTML<span class=\"k\">(</span>var1<span class=\"k\">);</span>","    <span class=\"k\">var</span> var2Standardized <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>standardizeHTML<span class=\"k\">(</span>var2<span class=\"k\">);</span>","","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> var1Standardized <span class=\"k\">===</span> var2Standardized<span class=\"k\">,</span> <span class=\"s\">'Expected '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var1Standardized<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">' but was '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var2Standardized<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a hash is has the same contents as another by iterating over the expected hash and checking that each</span>","<span class=\"c\"> * key's value is present in the actual hash and calling assertEquals on the two values, and then checking that there is</span>","<span class=\"c\"> * no key in the actual hash that isn't present in the expected hash.</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value the expected hash</span>","<span class=\"c\"> * @param value the actual hash</span>","<span class=\"c\"> * @throws JsUnit.Failure if the actual hash does not evaluate to true</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertHashEquals<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> key <span class=\"k\">in</span> var1<span class=\"k\">)</span> <span class=\"k\">{</span>","        assertNotUndefined<span class=\"k\">(</span><span class=\"s\">\"Expected hash had key \"</span> <span class=\"k\">+</span> key <span class=\"k\">+</span> <span class=\"s\">\" that was not found\"</span><span class=\"k\">,</span> var2<span class=\"k\">[</span>key<span class=\"k\">]);</span>","        assertEquals<span class=\"k\">(</span>","            <span class=\"s\">\"Value for key \"</span> <span class=\"k\">+</span> key <span class=\"k\">+</span> <span class=\"s\">\" mismatch - expected = \"</span> <span class=\"k\">+</span> var1<span class=\"k\">[</span>key<span class=\"k\">]</span> <span class=\"k\">+</span> <span class=\"s\">\", actual = \"</span> <span class=\"k\">+</span> var2<span class=\"k\">[</span>key<span class=\"k\">],</span>","            var1<span class=\"k\">[</span>key<span class=\"k\">],</span> var2<span class=\"k\">[</span>key<span class=\"k\">]</span>","        <span class=\"k\">);</span>","    <span class=\"k\">}</span>","    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> key <span class=\"k\">in</span> var2<span class=\"k\">)</span> <span class=\"k\">{</span>","        assertNotUndefined<span class=\"k\">(</span><span class=\"s\">\"Actual hash had key \"</span> <span class=\"k\">+</span> key <span class=\"k\">+</span> <span class=\"s\">\" that was not expected\"</span><span class=\"k\">,</span> var1<span class=\"k\">[</span>key<span class=\"k\">]);</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that two value are within a tolerance of one another</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param value1 a value</span>","<span class=\"c\"> * @param value1 another value</span>","<span class=\"c\"> * @param tolerance the tolerance</span>","<span class=\"c\"> * @throws JsUnit.Failure if the two values are not within tolerance of each other</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments is passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertRoughlyEquals<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">3</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> expected <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">3</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> actual <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">3</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> tolerance <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">3</span><span class=\"k\">,</span> <span class=\"s\">3</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    assertTrue<span class=\"k\">(</span>","        <span class=\"s\">\"Expected \"</span> <span class=\"k\">+</span> expected <span class=\"k\">+</span> <span class=\"s\">\", but got \"</span> <span class=\"k\">+</span> actual <span class=\"k\">+</span> <span class=\"s\">\" which was more than \"</span> <span class=\"k\">+</span> tolerance <span class=\"k\">+</span> <span class=\"s\">\" away\"</span><span class=\"k\">,</span>","        Math<span class=\"k\">.</span>abs<span class=\"k\">(</span>expected <span class=\"k\">-</span> actual<span class=\"k\">)</span> <span class=\"k\">&lt;</span> tolerance","    <span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that a collection contains a value by checking that collection.indexOf(value) is not -1</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param collection the collection</span>","<span class=\"c\"> * @param value the value</span>","<span class=\"c\"> * @throws JsUnit.Failure if the collection does not contain the value</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments are passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertContains<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> value <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> collection <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    assertTrue<span class=\"k\">(</span>","        <span class=\"s\">\"Expected '\"</span> <span class=\"k\">+</span> collection <span class=\"k\">+</span> <span class=\"s\">\"' to contain '\"</span> <span class=\"k\">+</span> value <span class=\"k\">+</span> <span class=\"s\">\"'\"</span><span class=\"k\">,</span>","        collection<span class=\"k\">.</span>indexOf<span class=\"k\">(</span>value<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"k\">-</span><span class=\"s\">1</span>","    <span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Checks that two arrays have the same contents, ignoring the order of the contents</span>","<span class=\"c\"> * @param comment optional, displayed in the case of failure</span>","<span class=\"c\"> * @param array1 first array</span>","<span class=\"c\"> * @param array2 second array</span>","<span class=\"c\"> * @throws JsUnit.Failure if the two arrays contain different contents</span>","<span class=\"c\"> * @throws JsUnitInvalidAssertionArgument if an incorrect number of arguments are passed</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertArrayEqualsIgnoringOrder<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var1 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    <span class=\"k\">var</span> var2 <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","","    <span class=\"k\">var</span> notEqualsMessage <span class=\"k\">=</span> <span class=\"s\">\"Expected arrays \"</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var1<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">\" and \"</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var2<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">\" to be equal (ignoring order)\"</span><span class=\"k\">;</span>","    <span class=\"k\">var</span> notArraysMessage <span class=\"k\">=</span> <span class=\"s\">\"Expected arguments \"</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var1<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">\" and \"</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>_displayStringForValue<span class=\"k\">(</span>var2<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">\" to be arrays\"</span><span class=\"k\">;</span>","","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotNull<span class=\"k\">(</span>var1<span class=\"k\">),</span> notEqualsMessage<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotNull<span class=\"k\">(</span>var2<span class=\"k\">),</span> notEqualsMessage<span class=\"k\">);</span>","","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotUndefined<span class=\"k\">(</span>var1<span class=\"k\">.</span>length<span class=\"k\">),</span> notArraysMessage<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotUndefined<span class=\"k\">(</span>var1<span class=\"k\">.</span>join<span class=\"k\">),</span> notArraysMessage<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotUndefined<span class=\"k\">(</span>var2<span class=\"k\">.</span>length<span class=\"k\">),</span> notArraysMessage<span class=\"k\">);</span>","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkNotUndefined<span class=\"k\">(</span>var2<span class=\"k\">.</span>join<span class=\"k\">),</span> notArraysMessage<span class=\"k\">);</span>","","    JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_checkEquals<span class=\"k\">(</span>var1<span class=\"k\">.</span>length<span class=\"k\">,</span> var2<span class=\"k\">.</span>length<span class=\"k\">),</span> notEqualsMessage<span class=\"k\">);</span>","","    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> var1<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> found <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> j <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span> j <span class=\"k\">&lt;</span> var2<span class=\"k\">.</span>length<span class=\"k\">;</span> j<span class=\"k\">++)</span> <span class=\"k\">{</span>","            <span class=\"k\">try</span> <span class=\"k\">{</span>","                assertObjectEquals<span class=\"k\">(</span>notEqualsMessage<span class=\"k\">,</span> var1<span class=\"k\">[</span>i<span class=\"k\">],</span> var2<span class=\"k\">[</span>j<span class=\"k\">]);</span>","                found <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","            <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>ignored<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        JsUnit<span class=\"k\">.</span>_assert<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> found<span class=\"k\">,</span> notEqualsMessage<span class=\"k\">);</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Synonym for assertArrayEqualsIgnoringOrder</span>","<span class=\"c\"> * @see #assertArrayEqualsIgnoringOrder</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> assertEqualsIgnoringOrder<span class=\"k\">()</span> <span class=\"k\">{</span>","    JsUnit<span class=\"k\">.</span>_validateArguments<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","    assertArrayEqualsIgnoringOrder<span class=\"k\">(</span>JsUnit<span class=\"k\">.</span>_commentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">),</span> JsUnit<span class=\"k\">.</span>_nonCommentArg<span class=\"k\">(</span><span class=\"s\">2</span><span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">,</span> arguments<span class=\"k\">));</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Causes a failure</span>","<span class=\"c\"> * @param failureMessage the message for the failure</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> fail<span class=\"k\">(</span>failureMessage<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">throw</span> <span class=\"k\">new</span> JsUnit<span class=\"k\">.</span>Failure<span class=\"k\">(</span><span class=\"s\">\"Call to fail()\"</span><span class=\"k\">,</span> failureMessage<span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Causes an error</span>","<span class=\"c\"> * @param errorMessage the message for the error</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> error<span class=\"k\">(</span>errorMessage<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">throw</span> <span class=\"k\">new</span> JsUnitError<span class=\"k\">(</span>errorMessage<span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @class</span>","<span class=\"c\"> * A JsUnit.Failure represents an assertion failure (or a call to fail()) during the execution of a Test Function</span>","<span class=\"c\"> * @param comment an optional comment about the failure</span>","<span class=\"c\"> * @param message the reason for the failure</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Failure <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>comment<span class=\"k\">,</span> message<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Declaration that this is a JsUnit.Failure</span>","<span class=\"c\">     * @ignore</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>isJsUnitFailure <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * An optional comment about the failure</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>comment <span class=\"k\">=</span> comment<span class=\"k\">;</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * The reason for the failure</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>jsUnitMessage <span class=\"k\">=</span> message<span class=\"k\">;</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * The stack trace at the point at which the failure was encountered</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>stackTrace <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getStackTrace<span class=\"k\">();</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @deprecated</span>","<span class=\"c\"> */</span>","JsUnitFailure <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Failure<span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @class</span>","<span class=\"c\"> * A JsUnitError represents an error (an exception or a call to error()) during the execution of a Test Function</span>","<span class=\"c\"> * @param description the reason for the failure</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Error <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>description<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * The description of the error</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>description <span class=\"k\">=</span> description<span class=\"k\">;</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * The stack trace at the point at which the error was encountered</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>stackTrace <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getStackTrace<span class=\"k\">();</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @deprecated</span>","<span class=\"c\"> */</span>","JsUnitError <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Error<span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @class</span>","<span class=\"c\"> * A JsUnitAssertionArgumentError represents an invalid call to an assertion function - either an invalid argument type</span>","<span class=\"c\"> * or an incorrect number of arguments</span>","<span class=\"c\"> * @param description a description of the argument error</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>AssertionArgumentError <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>description<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * A description of the argument error</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>description <span class=\"k\">=</span> description<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"k\">function</span> isLoaded<span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> isTestPageLoaded<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> setUp<span class=\"k\">()</span> <span class=\"k\">{</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> tearDown<span class=\"k\">()</span> <span class=\"k\">{</span>","<span class=\"k\">}</span>","","<span class=\"k\">function</span> warn<span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>top<span class=\"k\">.</span>tracer <span class=\"k\">!=</span> <span class=\"k\">null</span><span class=\"k\">)</span>","        top<span class=\"k\">.</span>tracer<span class=\"k\">.</span>warn<span class=\"k\">(</span>arguments<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">],</span> arguments<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]);</span>","<span class=\"k\">}</span>","","<span class=\"k\">function</span> inform<span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>top<span class=\"k\">.</span>tracer <span class=\"k\">!=</span> <span class=\"k\">null</span><span class=\"k\">)</span>","        top<span class=\"k\">.</span>tracer<span class=\"k\">.</span>inform<span class=\"k\">(</span>arguments<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">],</span> arguments<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]);</span>","<span class=\"k\">}</span>","","<span class=\"k\">function</span> info<span class=\"k\">()</span> <span class=\"k\">{</span>","    inform<span class=\"k\">(</span>arguments<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">],</span> arguments<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]);</span>","<span class=\"k\">}</span>","","<span class=\"k\">function</span> debug<span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>top<span class=\"k\">.</span>tracer <span class=\"k\">!=</span> <span class=\"k\">null</span><span class=\"k\">)</span>","        top<span class=\"k\">.</span>tracer<span class=\"k\">.</span>debug<span class=\"k\">(</span>arguments<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">],</span> arguments<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @class</span>","<span class=\"c\"> * A JsUnitTestSuite represents a suite of JsUnit Test Pages.  Test Pages and Test Suites can be added to a</span>","<span class=\"c\"> * JsUnitTestSuite</span>","<span class=\"c\"> * @constructor</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> JsUnitTestSuite<span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Declares that this object is a JsUnitTestSuite</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>isJsUnitTestSuite <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>_testPages <span class=\"k\">=</span> Array<span class=\"k\">();</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>_pageIndex <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","","    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> arguments<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>arguments<span class=\"k\">[</span>i<span class=\"k\">].</span>_testPages<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>addTestSuite<span class=\"k\">(</span>arguments<span class=\"k\">[</span>i<span class=\"k\">]);</span>","        <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>addTestPage<span class=\"k\">(</span>arguments<span class=\"k\">[</span>i<span class=\"k\">]);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Adds a Test Page to the suite</span>","<span class=\"c\"> * @param pageName the path to the Test Page</span>","<span class=\"c\"> */</span>","JsUnitTestSuite<span class=\"k\">.</span>prototype<span class=\"k\">.</span>addTestPage <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">(</span>page<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>_testPages<span class=\"k\">[</span><span class=\"k\">this</span><span class=\"k\">.</span>_testPages<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> page<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Adds a Test Suite to the suite</span>","<span class=\"c\"> * @param suite another JsUnitTestSuite object</span>","<span class=\"c\"> */</span>","","JsUnitTestSuite<span class=\"k\">.</span>prototype<span class=\"k\">.</span>addTestSuite <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">(</span>suite<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> suite<span class=\"k\">.</span>_testPages<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>addTestPage<span class=\"k\">(</span>suite<span class=\"k\">.</span>_testPages<span class=\"k\">[</span>i<span class=\"k\">]);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Whether the suite contains any Test Pages</span>","<span class=\"c\"> */</span>","JsUnitTestSuite<span class=\"k\">.</span>prototype<span class=\"k\">.</span>containsTestPages <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_testPages<span class=\"k\">.</span>length <span class=\"k\">&gt;</span> <span class=\"s\">0</span><span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Moves the suite on to its next Test Page</span>","<span class=\"c\"> */</span>","JsUnitTestSuite<span class=\"k\">.</span>prototype<span class=\"k\">.</span>nextPage <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_testPages<span class=\"k\">[</span><span class=\"k\">this</span><span class=\"k\">.</span>_pageIndex<span class=\"k\">++];</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Whether the suite has more Test Pages</span>","<span class=\"c\"> */</span>","JsUnitTestSuite<span class=\"k\">.</span>prototype<span class=\"k\">.</span>hasMorePages <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_pageIndex <span class=\"k\">&lt;</span> <span class=\"k\">this</span><span class=\"k\">.</span>_testPages<span class=\"k\">.</span>length<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Produces a copy of the suite</span>","<span class=\"c\"> */</span>","JsUnitTestSuite<span class=\"k\">.</span>prototype<span class=\"k\">.</span>clone <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> clone <span class=\"k\">=</span> <span class=\"k\">new</span> JsUnitTestSuite<span class=\"k\">();</span>","    clone<span class=\"k\">.</span>_testPages <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_testPages<span class=\"k\">;</span>","    <span class=\"k\">return</span> clone<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">//For legacy support - JsUnitTestSuite used to be called jsUnitTestSuite</span>","jsUnitTestSuite <span class=\"k\">=</span> JsUnitTestSuite<span class=\"k\">;</span>","","<span class=\"k\">function</span> setJsUnitTracer<span class=\"k\">(</span>aJsUnitTracer<span class=\"k\">)</span> <span class=\"k\">{</span>","    top<span class=\"k\">.</span>tracer <span class=\"k\">=</span> aJsUnitTracer<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"k\">function</span> jsUnitGetParm<span class=\"k\">(</span>name<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> top<span class=\"k\">.</span>params<span class=\"k\">.</span>get<span class=\"k\">(</span>name<span class=\"k\">);</span>","<span class=\"k\">}</span>","","JsUnit<span class=\"k\">.</span>_newOnLoadEvent <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","    isTestPageLoaded <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","<span class=\"k\">}</span>","","JsUnit<span class=\"k\">.</span>_setOnLoad <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>windowRef<span class=\"k\">,</span> onloadHandler<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> isKonqueror <span class=\"k\">=</span> navigator<span class=\"k\">.</span>userAgent<span class=\"k\">.</span>indexOf<span class=\"k\">(</span><span class=\"s\">'Konqueror/'</span><span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"k\">-</span><span class=\"s\">1</span><span class=\"k\">;</span>","","    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>windowRef<span class=\"k\">.</span>attachEvent<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'undefined'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"c\">// Internet Explorer, Opera</span>","        windowRef<span class=\"k\">.</span>attachEvent<span class=\"k\">(</span><span class=\"s\">\"onload\"</span><span class=\"k\">,</span> onloadHandler<span class=\"k\">);</span>","    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>windowRef<span class=\"k\">.</span>addEventListener<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'undefined'</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>isKonqueror<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"c\">// Mozilla</span>","        <span class=\"c\">// exclude Konqueror due to load issues</span>","        windowRef<span class=\"k\">.</span>addEventListener<span class=\"k\">(</span><span class=\"s\">\"load\"</span><span class=\"k\">,</span> onloadHandler<span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">);</span>","    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>windowRef<span class=\"k\">.</span>document<span class=\"k\">.</span>addEventListener<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'undefined'</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>isKonqueror<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"c\">// DOM 2 Events</span>","        <span class=\"c\">// exclude Mozilla, Konqueror due to load issues</span>","        windowRef<span class=\"k\">.</span>document<span class=\"k\">.</span>addEventListener<span class=\"k\">(</span><span class=\"s\">\"load\"</span><span class=\"k\">,</span> onloadHandler<span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">);</span>","    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>windowRef<span class=\"k\">.</span>onload<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'undefined'</span> <span class=\"k\">&amp;&amp;</span> windowRef<span class=\"k\">.</span>onload<span class=\"k\">)</span> <span class=\"k\">{</span>","        windowRef<span class=\"k\">.</span>jsunit_original_onload <span class=\"k\">=</span> windowRef<span class=\"k\">.</span>onload<span class=\"k\">;</span>","        windowRef<span class=\"k\">.</span>onload <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            windowRef<span class=\"k\">.</span>jsunit_original_onload<span class=\"k\">();</span>","            onloadHandler<span class=\"k\">();</span>","        <span class=\"k\">}</span><span class=\"k\">;</span>","    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","        <span class=\"c\">// browsers that do not support windowRef.attachEvent or</span>","        <span class=\"c\">// windowRef.addEventListener will override a page's own onload event</span>","        windowRef<span class=\"k\">.</span>onload <span class=\"k\">=</span> onloadHandler<span class=\"k\">;</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * @class</span>","<span class=\"c\"> * @constructor</span>","<span class=\"c\"> * Contains utility functions for the JsUnit framework</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Standardizes an HTML string by temporarily creating a DIV, setting its innerHTML to the string, and the asking for</span>","<span class=\"c\"> * the innerHTML back</span>","<span class=\"c\"> * @param html</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>standardizeHTML <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>html<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> translator <span class=\"k\">=</span> document<span class=\"k\">.</span>createElement<span class=\"k\">(</span><span class=\"s\">\"DIV\"</span><span class=\"k\">);</span>","    translator<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> html<span class=\"k\">;</span>","    <span class=\"k\">return</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>trim<span class=\"k\">(</span>translator<span class=\"k\">.</span>innerHTML<span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Returns whether the given string is blank after being trimmed of whitespace</span>","<span class=\"c\"> * @param string</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>isBlank <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>string<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>trim<span class=\"k\">(</span>string<span class=\"k\">)</span> <span class=\"k\">==</span> <span class=\"s\">''</span><span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Implemented here because the JavaScript Array.push(anObject) and Array.pop() functions are not available in IE 5.0</span>","<span class=\"c\"> * @param anArray the array onto which to push</span>","<span class=\"c\"> * @param anObject the object to push onto the array</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>push <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>anArray<span class=\"k\">,</span> anObject<span class=\"k\">)</span> <span class=\"k\">{</span>","    anArray<span class=\"k\">[</span>anArray<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> anObject<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Implemented here because the JavaScript Array.push(anObject) and Array.pop() functions are not available in IE 5.0</span>","<span class=\"c\"> * @param anArray the array from which to pop</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>pop <span class=\"k\">=</span> <span class=\"k\">function</span> pop<span class=\"k\">(</span>anArray<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>anArray<span class=\"k\">.</span>length <span class=\"k\">&gt;=</span> <span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">delete</span> anArray<span class=\"k\">[</span>anArray<span class=\"k\">.</span>length <span class=\"k\">-</span> <span class=\"s\">1</span><span class=\"k\">];</span>","        anArray<span class=\"k\">.</span>length<span class=\"k\">--;</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Returns the name of the given function, or 'anonymous' if it has no name</span>","<span class=\"c\"> * @param aFunction</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getFunctionName <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>aFunction<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> regexpResult <span class=\"k\">=</span> aFunction<span class=\"k\">.</span>toString<span class=\"k\">().</span>match<span class=\"k\">(</span><span class=\"s\">/function(\\s*)(\\w*)/</span><span class=\"k\">);</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>regexpResult <span class=\"k\">&amp;&amp;</span> regexpResult<span class=\"k\">.</span>length <span class=\"k\">&gt;=</span> <span class=\"s\">2</span> <span class=\"k\">&amp;&amp;</span> regexpResult<span class=\"k\">[</span><span class=\"s\">2</span><span class=\"k\">])</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> regexpResult<span class=\"k\">[</span><span class=\"s\">2</span><span class=\"k\">];</span>","    <span class=\"k\">}</span>","    <span class=\"k\">return</span> <span class=\"s\">'anonymous'</span><span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Returns the current stack trace</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getStackTrace <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> result <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","","    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span><span class=\"k\">(</span>arguments<span class=\"k\">.</span>caller<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"s\">'undefined'</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// IE, not ECMA</span>","        <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> a <span class=\"k\">=</span> arguments<span class=\"k\">.</span>caller<span class=\"k\">;</span> a <span class=\"k\">!=</span> <span class=\"k\">null</span><span class=\"k\">;</span> a <span class=\"k\">=</span> a<span class=\"k\">.</span>caller<span class=\"k\">)</span> <span class=\"k\">{</span>","            result <span class=\"k\">+=</span> <span class=\"s\">'&gt; '</span> <span class=\"k\">+</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getFunctionName<span class=\"k\">(</span>a<span class=\"k\">.</span>callee<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>a<span class=\"k\">.</span>caller <span class=\"k\">==</span> a<span class=\"k\">)</span> <span class=\"k\">{</span>","                result <span class=\"k\">+=</span> <span class=\"s\">'*'</span><span class=\"k\">;</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","    <span class=\"k\">else</span> <span class=\"k\">{</span> <span class=\"c\">// Mozilla, not ECMA</span>","        <span class=\"c\">// fake an exception so we can get Mozilla's error stack</span>","        <span class=\"k\">try</span>","        <span class=\"k\">{</span>","            foo<span class=\"k\">.</span>bar<span class=\"k\">;</span>","        <span class=\"k\">}</span>","        <span class=\"k\">catch</span><span class=\"k\">(</span>exception<span class=\"k\">)</span>","        <span class=\"k\">{</span>","            <span class=\"k\">var</span> stack <span class=\"k\">=</span> JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>parseErrorStack<span class=\"k\">(</span>exception<span class=\"k\">);</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">1</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> stack<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span>","            <span class=\"k\">{</span>","                result <span class=\"k\">+=</span> <span class=\"s\">'&gt; '</span> <span class=\"k\">+</span> stack<span class=\"k\">[</span>i<span class=\"k\">]</span> <span class=\"k\">+</span> <span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","","    <span class=\"k\">return</span> result<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Returns an array of stack trace elements from the given exception</span>","<span class=\"c\"> * @param exception</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>parseErrorStack <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>exception<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> stack <span class=\"k\">=</span> <span class=\"k\">[];</span>","    <span class=\"k\">var</span> name<span class=\"k\">;</span>","","    <span class=\"k\">if</span> <span class=\"k\">(!</span>exception <span class=\"k\">||</span> <span class=\"k\">!</span>exception<span class=\"k\">.</span>stack<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> stack<span class=\"k\">;</span>","    <span class=\"k\">}</span>","","    <span class=\"k\">var</span> stacklist <span class=\"k\">=</span> exception<span class=\"k\">.</span>stack<span class=\"k\">.</span>split<span class=\"k\">(</span><span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span><span class=\"k\">);</span>","","    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> stacklist<span class=\"k\">.</span>length <span class=\"k\">-</span> <span class=\"s\">1</span><span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> framedata <span class=\"k\">=</span> stacklist<span class=\"k\">[</span>i<span class=\"k\">];</span>","","        name <span class=\"k\">=</span> framedata<span class=\"k\">.</span>match<span class=\"k\">(</span><span class=\"s\">/^(\\w*)/</span><span class=\"k\">)[</span><span class=\"s\">1</span><span class=\"k\">];</span>","        <span class=\"k\">if</span> <span class=\"k\">(!</span>name<span class=\"k\">)</span> <span class=\"k\">{</span>","            name <span class=\"k\">=</span> <span class=\"s\">'anonymous'</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        stack<span class=\"k\">[</span>stack<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> name<span class=\"k\">;</span>","    <span class=\"k\">}</span>","    <span class=\"c\">// remove top level anonymous functions to match IE</span>","","    <span class=\"k\">while</span> <span class=\"k\">(</span>stack<span class=\"k\">.</span>length <span class=\"k\">&amp;&amp;</span> stack<span class=\"k\">[</span>stack<span class=\"k\">.</span>length <span class=\"k\">-</span> <span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">==</span> <span class=\"s\">'anonymous'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","        stack<span class=\"k\">.</span>length <span class=\"k\">=</span> stack<span class=\"k\">.</span>length <span class=\"k\">-</span> <span class=\"s\">1</span><span class=\"k\">;</span>","    <span class=\"k\">}</span>","    <span class=\"k\">return</span> stack<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Strips whitespace from either end of the given string</span>","<span class=\"c\"> * @param string</span>","<span class=\"c\"> */</span>","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>trim <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>string<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>string <span class=\"k\">==</span> <span class=\"k\">null</span><span class=\"k\">)</span>","        <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","","    <span class=\"k\">var</span> startingIndex <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","    <span class=\"k\">var</span> endingIndex <span class=\"k\">=</span> string<span class=\"k\">.</span>length <span class=\"k\">-</span> <span class=\"s\">1</span><span class=\"k\">;</span>","","    <span class=\"k\">var</span> singleWhitespaceRegex <span class=\"k\">=</span> <span class=\"s\">/\\s/</span><span class=\"k\">;</span>","    <span class=\"k\">while</span> <span class=\"k\">(</span>string<span class=\"k\">.</span>substring<span class=\"k\">(</span>startingIndex<span class=\"k\">,</span> startingIndex <span class=\"k\">+</span> <span class=\"s\">1</span><span class=\"k\">).</span>match<span class=\"k\">(</span>singleWhitespaceRegex<span class=\"k\">))</span>","        startingIndex<span class=\"k\">++;</span>","","    <span class=\"k\">while</span> <span class=\"k\">(</span>string<span class=\"k\">.</span>substring<span class=\"k\">(</span>endingIndex<span class=\"k\">,</span> endingIndex <span class=\"k\">+</span> <span class=\"s\">1</span><span class=\"k\">).</span>match<span class=\"k\">(</span>singleWhitespaceRegex<span class=\"k\">))</span>","        endingIndex<span class=\"k\">--;</span>","","    <span class=\"k\">if</span> <span class=\"k\">(</span>endingIndex <span class=\"k\">&lt;</span> startingIndex<span class=\"k\">)</span>","        <span class=\"k\">return</span> <span class=\"s\">''</span><span class=\"k\">;</span>","","    <span class=\"k\">return</span> string<span class=\"k\">.</span>substring<span class=\"k\">(</span>startingIndex<span class=\"k\">,</span> endingIndex <span class=\"k\">+</span> <span class=\"s\">1</span><span class=\"k\">);</span>","<span class=\"k\">}</span>","","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>getKeys <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>obj<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> keys <span class=\"k\">=</span> <span class=\"k\">[];</span>","    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> key <span class=\"k\">in</span> obj<span class=\"k\">)</span> <span class=\"k\">{</span>","        JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>push<span class=\"k\">(</span>keys<span class=\"k\">,</span> key<span class=\"k\">);</span>","    <span class=\"k\">}</span>","    <span class=\"k\">return</span> keys<span class=\"k\">;</span>","<span class=\"k\">}</span>","","JsUnit<span class=\"k\">.</span>Util<span class=\"k\">.</span>inherit <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>superclass<span class=\"k\">,</span> subclass<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> x <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","    x<span class=\"k\">.</span>prototype <span class=\"k\">=</span> superclass<span class=\"k\">.</span>prototype<span class=\"k\">;</span>","    subclass<span class=\"k\">.</span>prototype <span class=\"k\">=</span> <span class=\"k\">new</span> x<span class=\"k\">();</span>","<span class=\"k\">}</span>","","JsUnit<span class=\"k\">.</span>_setOnLoad<span class=\"k\">(</span>window<span class=\"k\">,</span> JsUnit<span class=\"k\">.</span>_newOnLoadEvent<span class=\"k\">);</span>"];
_$jscoverage['app/jsUnitCore.js'][11]++;
var JsUnit = {};
_$jscoverage['app/jsUnitCore.js'][17]++;
JsUnit.VERSION = 2.2000000000000002;
_$jscoverage['app/jsUnitCore.js'][18]++;
var JSUNIT_VERSION = JsUnit.VERSION;
_$jscoverage['app/jsUnitCore.js'][23]++;
var JSUNIT_UNDEFINED_VALUE;
_$jscoverage['app/jsUnitCore.js'][28]++;
var isTestPageLoaded = false;
_$jscoverage['app/jsUnitCore.js'][33]++;
JsUnit.DOUBLE_EQUALITY_PREDICATE = (function (var1, var2) {
  _$jscoverage['app/jsUnitCore.js'][33]++;
  return (var1 == var2);
});
_$jscoverage['app/jsUnitCore.js'][38]++;
JsUnit.TRIPLE_EQUALITY_PREDICATE = (function (var1, var2) {
  _$jscoverage['app/jsUnitCore.js'][38]++;
  return (var1 === var2);
});
_$jscoverage['app/jsUnitCore.js'][43]++;
JsUnit.TO_STRING_EQUALITY_PREDICATE = (function (var1, var2) {
  _$jscoverage['app/jsUnitCore.js'][43]++;
  return (var1.toString() === var2.toString());
});
_$jscoverage['app/jsUnitCore.js'][48]++;
JsUnit.PRIMITIVE_EQUALITY_PREDICATES = {"String": JsUnit.DOUBLE_EQUALITY_PREDICATE, "Number": JsUnit.DOUBLE_EQUALITY_PREDICATE, "Boolean": JsUnit.DOUBLE_EQUALITY_PREDICATE, "Date": JsUnit.TRIPLE_EQUALITY_PREDICATE, "RegExp": JsUnit.TO_STRING_EQUALITY_PREDICATE, "Function": JsUnit.TO_STRING_EQUALITY_PREDICATE};
_$jscoverage['app/jsUnitCore.js'][61]++;
JsUnit._fixTop = (function () {
  _$jscoverage['app/jsUnitCore.js'][62]++;
  var tempTop = top;
  _$jscoverage['app/jsUnitCore.js'][63]++;
  if ((! tempTop)) {
    _$jscoverage['app/jsUnitCore.js'][64]++;
    tempTop = window;
    _$jscoverage['app/jsUnitCore.js'][65]++;
    while (tempTop.parent) {
      _$jscoverage['app/jsUnitCore.js'][66]++;
      tempTop = tempTop.parent;
      _$jscoverage['app/jsUnitCore.js'][67]++;
      if ((tempTop.top && tempTop.top.jsUnitTestSuite)) {
        _$jscoverage['app/jsUnitCore.js'][68]++;
        tempTop = tempTop.top;
        _$jscoverage['app/jsUnitCore.js'][69]++;
        break;
      }
}
  }
  _$jscoverage['app/jsUnitCore.js'][73]++;
  try {
    _$jscoverage['app/jsUnitCore.js'][74]++;
    window.top = tempTop;
  }
  catch (e) {
  }
});
_$jscoverage['app/jsUnitCore.js'][79]++;
JsUnit._fixTop();
_$jscoverage['app/jsUnitCore.js'][86]++;
JsUnit._trueTypeOf = (function (something) {
  _$jscoverage['app/jsUnitCore.js'][87]++;
  var result = (typeof something);
  _$jscoverage['app/jsUnitCore.js'][88]++;
  try {
    _$jscoverage['app/jsUnitCore.js'][89]++;
    switch (result) {
    case "string":
      _$jscoverage['app/jsUnitCore.js'][91]++;
      break;
    case "boolean":
      _$jscoverage['app/jsUnitCore.js'][93]++;
      break;
    case "number":
      _$jscoverage['app/jsUnitCore.js'][95]++;
      break;
    case "object":
    case "function":
      _$jscoverage['app/jsUnitCore.js'][98]++;
      switch (something.constructor) {
      case new String().constructor:
        _$jscoverage['app/jsUnitCore.js'][100]++;
        result = "String";
        _$jscoverage['app/jsUnitCore.js'][101]++;
        break;
      case new Boolean().constructor:
        _$jscoverage['app/jsUnitCore.js'][103]++;
        result = "Boolean";
        _$jscoverage['app/jsUnitCore.js'][104]++;
        break;
      case new Number().constructor:
        _$jscoverage['app/jsUnitCore.js'][106]++;
        result = "Number";
        _$jscoverage['app/jsUnitCore.js'][107]++;
        break;
      case new Array().constructor:
        _$jscoverage['app/jsUnitCore.js'][109]++;
        result = "Array";
        _$jscoverage['app/jsUnitCore.js'][110]++;
        break;
      case new RegExp().constructor:
        _$jscoverage['app/jsUnitCore.js'][112]++;
        result = "RegExp";
        _$jscoverage['app/jsUnitCore.js'][113]++;
        break;
      case new Date().constructor:
        _$jscoverage['app/jsUnitCore.js'][115]++;
        result = "Date";
        _$jscoverage['app/jsUnitCore.js'][116]++;
        break;
      case Function:
        _$jscoverage['app/jsUnitCore.js'][118]++;
        result = "Function";
        _$jscoverage['app/jsUnitCore.js'][119]++;
        break;
      default:
        _$jscoverage['app/jsUnitCore.js'][121]++;
        var m = something.constructor.toString().match(/function\s*([^( ]+)\(/);
        _$jscoverage['app/jsUnitCore.js'][122]++;
        if (m) {
          _$jscoverage['app/jsUnitCore.js'][123]++;
          result = m[1];
        }
        else {
          _$jscoverage['app/jsUnitCore.js'][125]++;
          break;
        }
      }
      _$jscoverage['app/jsUnitCore.js'][127]++;
      break;
    }
  }
  finally {
    _$jscoverage['app/jsUnitCore.js'][131]++;
    result = (result.substr(0, 1).toUpperCase() + result.substr(1));
    _$jscoverage['app/jsUnitCore.js'][132]++;
    return result;
  }
});
_$jscoverage['app/jsUnitCore.js'][139]++;
JsUnit._displayStringForValue = (function (aVar) {
  _$jscoverage['app/jsUnitCore.js'][140]++;
  var result = ("<" + aVar + ">");
  _$jscoverage['app/jsUnitCore.js'][141]++;
  if ((! ((aVar === null) || (aVar === JSUNIT_UNDEFINED_VALUE)))) {
    _$jscoverage['app/jsUnitCore.js'][142]++;
    result += (" (" + JsUnit._trueTypeOf(aVar) + ")");
  }
  _$jscoverage['app/jsUnitCore.js'][144]++;
  return result;
});
_$jscoverage['app/jsUnitCore.js'][150]++;
JsUnit._argumentsIncludeComments = (function (expectedNumberOfNonCommentArgs, args) {
  _$jscoverage['app/jsUnitCore.js'][151]++;
  return (args.length == (expectedNumberOfNonCommentArgs + 1));
});
_$jscoverage['app/jsUnitCore.js'][156]++;
JsUnit._commentArg = (function (expectedNumberOfNonCommentArgs, args) {
  _$jscoverage['app/jsUnitCore.js'][157]++;
  if (JsUnit._argumentsIncludeComments(expectedNumberOfNonCommentArgs, args)) {
    _$jscoverage['app/jsUnitCore.js'][158]++;
    return args[0];
  }
  _$jscoverage['app/jsUnitCore.js'][160]++;
  return null;
});
_$jscoverage['app/jsUnitCore.js'][165]++;
JsUnit._nonCommentArg = (function (desiredNonCommentArgIndex, expectedNumberOfNonCommentArgs, args) {
  _$jscoverage['app/jsUnitCore.js'][166]++;
  return (JsUnit._argumentsIncludeComments(expectedNumberOfNonCommentArgs, args)? args[desiredNonCommentArgIndex]: args[(desiredNonCommentArgIndex - 1)]);
});
_$jscoverage['app/jsUnitCore.js'][174]++;
JsUnit._validateArguments = (function (expectedNumberOfNonCommentArgs, args) {
  _$jscoverage['app/jsUnitCore.js'][175]++;
  if ((! ((args.length == expectedNumberOfNonCommentArgs) || (((args.length == (expectedNumberOfNonCommentArgs + 1)) && ((typeof args[0]) == "string")) || (args[0] == null))))) {
    _$jscoverage['app/jsUnitCore.js'][177]++;
    throw new (JsUnit.AssertionArgumentError)("Incorrect arguments passed to assert function");
  }
});
_$jscoverage['app/jsUnitCore.js'][183]++;
JsUnit._checkEquals = (function (var1, var2) {
  _$jscoverage['app/jsUnitCore.js'][184]++;
  return (var1 === var2);
});
_$jscoverage['app/jsUnitCore.js'][190]++;
JsUnit._checkNotUndefined = (function (aVar) {
  _$jscoverage['app/jsUnitCore.js'][191]++;
  return (aVar !== JSUNIT_UNDEFINED_VALUE);
});
_$jscoverage['app/jsUnitCore.js'][197]++;
JsUnit._checkNotNull = (function (aVar) {
  _$jscoverage['app/jsUnitCore.js'][198]++;
  return (aVar !== null);
});
_$jscoverage['app/jsUnitCore.js'][205]++;
JsUnit._assert = (function (comment, booleanValue, failureMessage) {
  _$jscoverage['app/jsUnitCore.js'][206]++;
  if ((! booleanValue)) {
    _$jscoverage['app/jsUnitCore.js'][207]++;
    throw new (JsUnit.Failure)(comment, failureMessage);
  }
});
_$jscoverage['app/jsUnitCore.js'][217]++;
function assert() {
  _$jscoverage['app/jsUnitCore.js'][218]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][219]++;
  var booleanValue = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][221]++;
  if (((typeof booleanValue) != "boolean")) {
    _$jscoverage['app/jsUnitCore.js'][222]++;
    throw new (JsUnit.AssertionArgumentError)("Bad argument to assert(boolean)");
  }
  _$jscoverage['app/jsUnitCore.js'][224]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), (booleanValue === true), "Call to assert(boolean) with false");
}
_$jscoverage['app/jsUnitCore.js'][231]++;
function assertTrue() {
  _$jscoverage['app/jsUnitCore.js'][232]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][233]++;
  assert(JsUnit._commentArg(1, arguments), JsUnit._nonCommentArg(1, 1, arguments));
}
_$jscoverage['app/jsUnitCore.js'][243]++;
function assertFalse() {
  _$jscoverage['app/jsUnitCore.js'][244]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][245]++;
  var booleanValue = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][247]++;
  if (((typeof booleanValue) != "boolean")) {
    _$jscoverage['app/jsUnitCore.js'][248]++;
    throw new (JsUnit.AssertionArgumentError)("Bad argument to assertFalse(boolean)");
  }
  _$jscoverage['app/jsUnitCore.js'][250]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), (booleanValue === false), "Call to assertFalse(boolean) with true");
}
_$jscoverage['app/jsUnitCore.js'][261]++;
function assertEquals() {
  _$jscoverage['app/jsUnitCore.js'][262]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][263]++;
  var var1 = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][264]++;
  var var2 = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][265]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), JsUnit._checkEquals(var1, var2), ("Expected " + JsUnit._displayStringForValue(var1) + " but was " + JsUnit._displayStringForValue(var2)));
}
_$jscoverage['app/jsUnitCore.js'][276]++;
function assertNotEquals() {
  _$jscoverage['app/jsUnitCore.js'][277]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][278]++;
  var var1 = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][279]++;
  var var2 = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][280]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), (var1 !== var2), ("Expected not to be " + JsUnit._displayStringForValue(var2)));
}
_$jscoverage['app/jsUnitCore.js'][290]++;
function assertNull() {
  _$jscoverage['app/jsUnitCore.js'][291]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][292]++;
  var aVar = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][293]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), (aVar === null), ("Expected " + JsUnit._displayStringForValue(null) + " but was " + JsUnit._displayStringForValue(aVar)));
}
_$jscoverage['app/jsUnitCore.js'][303]++;
function assertNotNull() {
  _$jscoverage['app/jsUnitCore.js'][304]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][305]++;
  var aVar = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][306]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), JsUnit._checkNotNull(aVar), ("Expected not to be " + JsUnit._displayStringForValue(null)));
}
_$jscoverage['app/jsUnitCore.js'][316]++;
function assertUndefined() {
  _$jscoverage['app/jsUnitCore.js'][317]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][318]++;
  var aVar = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][319]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), (aVar === JSUNIT_UNDEFINED_VALUE), ("Expected " + JsUnit._displayStringForValue(JSUNIT_UNDEFINED_VALUE) + " but was " + JsUnit._displayStringForValue(aVar)));
}
_$jscoverage['app/jsUnitCore.js'][329]++;
function assertNotUndefined() {
  _$jscoverage['app/jsUnitCore.js'][330]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][331]++;
  var aVar = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][332]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), JsUnit._checkNotUndefined(aVar), ("Expected not to be " + JsUnit._displayStringForValue(JSUNIT_UNDEFINED_VALUE)));
}
_$jscoverage['app/jsUnitCore.js'][342]++;
function assertNaN() {
  _$jscoverage['app/jsUnitCore.js'][343]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][344]++;
  var aVar = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][345]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), isNaN(aVar), "Expected NaN");
}
_$jscoverage['app/jsUnitCore.js'][355]++;
function assertNotNaN() {
  _$jscoverage['app/jsUnitCore.js'][356]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][357]++;
  var aVar = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][358]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), (! isNaN(aVar)), "Expected not NaN");
}
_$jscoverage['app/jsUnitCore.js'][370]++;
function assertObjectEquals() {
  _$jscoverage['app/jsUnitCore.js'][371]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][372]++;
  var var1 = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][373]++;
  var var2 = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][374]++;
  var failureMessage = (JsUnit._commentArg(2, arguments)? JsUnit._commentArg(2, arguments): "");
  _$jscoverage['app/jsUnitCore.js'][375]++;
  if ((var1 === var2)) {
    _$jscoverage['app/jsUnitCore.js'][376]++;
    return;
  }
  _$jscoverage['app/jsUnitCore.js'][378]++;
  var isEqual = false;
  _$jscoverage['app/jsUnitCore.js'][380]++;
  var typeOfVar1 = JsUnit._trueTypeOf(var1);
  _$jscoverage['app/jsUnitCore.js'][381]++;
  var typeOfVar2 = JsUnit._trueTypeOf(var2);
  _$jscoverage['app/jsUnitCore.js'][383]++;
  if ((typeOfVar1 == typeOfVar2)) {
    _$jscoverage['app/jsUnitCore.js'][384]++;
    var primitiveEqualityPredicate = JsUnit.PRIMITIVE_EQUALITY_PREDICATES[typeOfVar1];
    _$jscoverage['app/jsUnitCore.js'][385]++;
    if (primitiveEqualityPredicate) {
      _$jscoverage['app/jsUnitCore.js'][386]++;
      isEqual = primitiveEqualityPredicate(var1, var2);
    }
    else {
      _$jscoverage['app/jsUnitCore.js'][388]++;
      var expectedKeys = JsUnit.Util.getKeys(var1).sort().join(", ");
      _$jscoverage['app/jsUnitCore.js'][389]++;
      var actualKeys = JsUnit.Util.getKeys(var2).sort().join(", ");
      _$jscoverage['app/jsUnitCore.js'][390]++;
      if ((expectedKeys != actualKeys)) {
        _$jscoverage['app/jsUnitCore.js'][391]++;
        JsUnit._assert(failureMessage, false, ("Expected keys \"" + expectedKeys + "\" but found \"" + actualKeys + "\""));
      }
      _$jscoverage['app/jsUnitCore.js'][393]++;
      for (var i in var1) {
        _$jscoverage['app/jsUnitCore.js'][394]++;
        assertObjectEquals((failureMessage + " found nested " + typeOfVar1 + "@" + i + "\n"), var1[i], var2[i]);
}
      _$jscoverage['app/jsUnitCore.js'][396]++;
      isEqual = true;
    }
  }
  _$jscoverage['app/jsUnitCore.js'][399]++;
  JsUnit._assert(failureMessage, isEqual, ("Expected " + JsUnit._displayStringForValue(var1) + " but was " + JsUnit._displayStringForValue(var2)));
}
_$jscoverage['app/jsUnitCore.js'][410]++;
function assertArrayEquals() {
  _$jscoverage['app/jsUnitCore.js'][411]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][412]++;
  var array1 = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][413]++;
  var array2 = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][414]++;
  if (((JsUnit._trueTypeOf(array1) != "Array") || (JsUnit._trueTypeOf(array2) != "Array"))) {
    _$jscoverage['app/jsUnitCore.js'][415]++;
    throw new (JsUnit.AssertionArgumentError)("Non-array passed to assertArrayEquals");
  }
  _$jscoverage['app/jsUnitCore.js'][417]++;
  assertObjectEquals(JsUnit._commentArg(2, arguments), JsUnit._nonCommentArg(1, 2, arguments), JsUnit._nonCommentArg(2, 2, arguments));
}
_$jscoverage['app/jsUnitCore.js'][427]++;
function assertEvaluatesToTrue() {
  _$jscoverage['app/jsUnitCore.js'][428]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][429]++;
  var value = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][430]++;
  if ((! value)) {
    _$jscoverage['app/jsUnitCore.js'][431]++;
    fail(JsUnit._commentArg(1, arguments));
  }
}
_$jscoverage['app/jsUnitCore.js'][441]++;
function assertEvaluatesToFalse() {
  _$jscoverage['app/jsUnitCore.js'][442]++;
  JsUnit._validateArguments(1, arguments);
  _$jscoverage['app/jsUnitCore.js'][443]++;
  var value = JsUnit._nonCommentArg(1, 1, arguments);
  _$jscoverage['app/jsUnitCore.js'][444]++;
  if (value) {
    _$jscoverage['app/jsUnitCore.js'][445]++;
    fail(JsUnit._commentArg(1, arguments));
  }
}
_$jscoverage['app/jsUnitCore.js'][458]++;
function assertHTMLEquals() {
  _$jscoverage['app/jsUnitCore.js'][459]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][460]++;
  var var1 = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][461]++;
  var var2 = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][462]++;
  var var1Standardized = JsUnit.Util.standardizeHTML(var1);
  _$jscoverage['app/jsUnitCore.js'][463]++;
  var var2Standardized = JsUnit.Util.standardizeHTML(var2);
  _$jscoverage['app/jsUnitCore.js'][465]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), (var1Standardized === var2Standardized), ("Expected " + JsUnit._displayStringForValue(var1Standardized) + " but was " + JsUnit._displayStringForValue(var2Standardized)));
}
_$jscoverage['app/jsUnitCore.js'][478]++;
function assertHashEquals() {
  _$jscoverage['app/jsUnitCore.js'][479]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][480]++;
  var var1 = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][481]++;
  var var2 = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][482]++;
  for (var key in var1) {
    _$jscoverage['app/jsUnitCore.js'][483]++;
    assertNotUndefined(("Expected hash had key " + key + " that was not found"), var2[key]);
    _$jscoverage['app/jsUnitCore.js'][484]++;
    assertEquals(("Value for key " + key + " mismatch - expected = " + var1[key] + ", actual = " + var2[key]), var1[key], var2[key]);
}
  _$jscoverage['app/jsUnitCore.js'][489]++;
  for (var key = key in var2) {
    _$jscoverage['app/jsUnitCore.js'][490]++;
    assertNotUndefined(("Actual hash had key " + key + " that was not expected"), var1[key]);
}
}
_$jscoverage['app/jsUnitCore.js'][503]++;
function assertRoughlyEquals() {
  _$jscoverage['app/jsUnitCore.js'][504]++;
  JsUnit._validateArguments(3, arguments);
  _$jscoverage['app/jsUnitCore.js'][505]++;
  var expected = JsUnit._nonCommentArg(1, 3, arguments);
  _$jscoverage['app/jsUnitCore.js'][506]++;
  var actual = JsUnit._nonCommentArg(2, 3, arguments);
  _$jscoverage['app/jsUnitCore.js'][507]++;
  var tolerance = JsUnit._nonCommentArg(3, 3, arguments);
  _$jscoverage['app/jsUnitCore.js'][508]++;
  assertTrue(("Expected " + expected + ", but got " + actual + " which was more than " + tolerance + " away"), (Math.abs((expected - actual)) < tolerance));
}
_$jscoverage['app/jsUnitCore.js'][522]++;
function assertContains() {
  _$jscoverage['app/jsUnitCore.js'][523]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][524]++;
  var value = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][525]++;
  var collection = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][526]++;
  assertTrue(("Expected '" + collection + "' to contain '" + value + "'"), (collection.indexOf(value) != -1));
}
_$jscoverage['app/jsUnitCore.js'][540]++;
function assertArrayEqualsIgnoringOrder() {
  _$jscoverage['app/jsUnitCore.js'][541]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][542]++;
  var var1 = JsUnit._nonCommentArg(1, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][543]++;
  var var2 = JsUnit._nonCommentArg(2, 2, arguments);
  _$jscoverage['app/jsUnitCore.js'][545]++;
  var notEqualsMessage = ("Expected arrays " + JsUnit._displayStringForValue(var1) + " and " + JsUnit._displayStringForValue(var2) + " to be equal (ignoring order)");
  _$jscoverage['app/jsUnitCore.js'][546]++;
  var notArraysMessage = ("Expected arguments " + JsUnit._displayStringForValue(var1) + " and " + JsUnit._displayStringForValue(var2) + " to be arrays");
  _$jscoverage['app/jsUnitCore.js'][548]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), JsUnit._checkNotNull(var1), notEqualsMessage);
  _$jscoverage['app/jsUnitCore.js'][549]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), JsUnit._checkNotNull(var2), notEqualsMessage);
  _$jscoverage['app/jsUnitCore.js'][551]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), JsUnit._checkNotUndefined(var1.length), notArraysMessage);
  _$jscoverage['app/jsUnitCore.js'][552]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), JsUnit._checkNotUndefined(var1.join), notArraysMessage);
  _$jscoverage['app/jsUnitCore.js'][553]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), JsUnit._checkNotUndefined(var2.length), notArraysMessage);
  _$jscoverage['app/jsUnitCore.js'][554]++;
  JsUnit._assert(JsUnit._commentArg(2, arguments), JsUnit._checkNotUndefined(var2.join), notArraysMessage);
  _$jscoverage['app/jsUnitCore.js'][556]++;
  JsUnit._assert(JsUnit._commentArg(1, arguments), JsUnit._checkEquals(var1.length, var2.length), notEqualsMessage);
  _$jscoverage['app/jsUnitCore.js'][558]++;
  for (var i = 0; (i < var1.length); (i++)) {
    _$jscoverage['app/jsUnitCore.js'][559]++;
    var found = false;
    _$jscoverage['app/jsUnitCore.js'][560]++;
    for (var j = 0; (j < var2.length); (j++)) {
      _$jscoverage['app/jsUnitCore.js'][561]++;
      try {
        _$jscoverage['app/jsUnitCore.js'][562]++;
        assertObjectEquals(notEqualsMessage, var1[i], var2[j]);
        _$jscoverage['app/jsUnitCore.js'][563]++;
        found = true;
      }
      catch (ignored) {
      }
}
    _$jscoverage['app/jsUnitCore.js'][567]++;
    JsUnit._assert(JsUnit._commentArg(2, arguments), found, notEqualsMessage);
}
}
_$jscoverage['app/jsUnitCore.js'][575]++;
function assertEqualsIgnoringOrder() {
  _$jscoverage['app/jsUnitCore.js'][576]++;
  JsUnit._validateArguments(2, arguments);
  _$jscoverage['app/jsUnitCore.js'][577]++;
  assertArrayEqualsIgnoringOrder(JsUnit._commentArg(2, arguments), JsUnit._nonCommentArg(1, 2, arguments), JsUnit._nonCommentArg(2, 2, arguments));
}
_$jscoverage['app/jsUnitCore.js'][584]++;
function fail(failureMessage) {
  _$jscoverage['app/jsUnitCore.js'][585]++;
  throw new (JsUnit.Failure)("Call to fail()", failureMessage);
}
_$jscoverage['app/jsUnitCore.js'][592]++;
function error(errorMessage) {
  _$jscoverage['app/jsUnitCore.js'][593]++;
  throw new JsUnitError(errorMessage);
}
_$jscoverage['app/jsUnitCore.js'][602]++;
JsUnit.Failure = (function (comment, message) {
  _$jscoverage['app/jsUnitCore.js'][607]++;
  this.isJsUnitFailure = true;
  _$jscoverage['app/jsUnitCore.js'][611]++;
  this.comment = comment;
  _$jscoverage['app/jsUnitCore.js'][615]++;
  this.jsUnitMessage = message;
  _$jscoverage['app/jsUnitCore.js'][619]++;
  this.stackTrace = JsUnit.Util.getStackTrace();
});
_$jscoverage['app/jsUnitCore.js'][625]++;
JsUnitFailure = JsUnit.Failure;
_$jscoverage['app/jsUnitCore.js'][632]++;
JsUnit.Error = (function (description) {
  _$jscoverage['app/jsUnitCore.js'][636]++;
  this.description = description;
  _$jscoverage['app/jsUnitCore.js'][640]++;
  this.stackTrace = JsUnit.Util.getStackTrace();
});
_$jscoverage['app/jsUnitCore.js'][646]++;
JsUnitError = JsUnit.Error;
_$jscoverage['app/jsUnitCore.js'][654]++;
JsUnit.AssertionArgumentError = (function (description) {
  _$jscoverage['app/jsUnitCore.js'][658]++;
  this.description = description;
});
_$jscoverage['app/jsUnitCore.js'][661]++;
function isLoaded() {
  _$jscoverage['app/jsUnitCore.js'][662]++;
  return isTestPageLoaded;
}
_$jscoverage['app/jsUnitCore.js'][668]++;
function setUp() {
}
_$jscoverage['app/jsUnitCore.js'][674]++;
function tearDown() {
}
_$jscoverage['app/jsUnitCore.js'][677]++;
function warn() {
  _$jscoverage['app/jsUnitCore.js'][678]++;
  if ((top.tracer != null)) {
    _$jscoverage['app/jsUnitCore.js'][679]++;
    top.tracer.warn(arguments[0], arguments[1]);
  }
}
_$jscoverage['app/jsUnitCore.js'][682]++;
function inform() {
  _$jscoverage['app/jsUnitCore.js'][683]++;
  if ((top.tracer != null)) {
    _$jscoverage['app/jsUnitCore.js'][684]++;
    top.tracer.inform(arguments[0], arguments[1]);
  }
}
_$jscoverage['app/jsUnitCore.js'][687]++;
function info() {
  _$jscoverage['app/jsUnitCore.js'][688]++;
  inform(arguments[0], arguments[1]);
}
_$jscoverage['app/jsUnitCore.js'][691]++;
function debug() {
  _$jscoverage['app/jsUnitCore.js'][692]++;
  if ((top.tracer != null)) {
    _$jscoverage['app/jsUnitCore.js'][693]++;
    top.tracer.debug(arguments[0], arguments[1]);
  }
}
_$jscoverage['app/jsUnitCore.js'][702]++;
function JsUnitTestSuite() {
  _$jscoverage['app/jsUnitCore.js'][706]++;
  this.isJsUnitTestSuite = true;
  _$jscoverage['app/jsUnitCore.js'][710]++;
  this._testPages = Array();
  _$jscoverage['app/jsUnitCore.js'][714]++;
  this._pageIndex = 0;
  _$jscoverage['app/jsUnitCore.js'][716]++;
  for (var i = 0; (i < arguments.length); (i++)) {
    _$jscoverage['app/jsUnitCore.js'][717]++;
    if (arguments[i]._testPages) {
      _$jscoverage['app/jsUnitCore.js'][718]++;
      this.addTestSuite(arguments[i]);
    }
    else {
      _$jscoverage['app/jsUnitCore.js'][720]++;
      this.addTestPage(arguments[i]);
    }
}
}
_$jscoverage['app/jsUnitCore.js'][729]++;
JsUnitTestSuite.prototype.addTestPage = (function (page) {
  _$jscoverage['app/jsUnitCore.js'][730]++;
  this._testPages[this._testPages.length] = page;
});
_$jscoverage['app/jsUnitCore.js'][738]++;
JsUnitTestSuite.prototype.addTestSuite = (function (suite) {
  _$jscoverage['app/jsUnitCore.js'][739]++;
  for (var i = 0; (i < suite._testPages.length); (i++)) {
    _$jscoverage['app/jsUnitCore.js'][740]++;
    this.addTestPage(suite._testPages[i]);
}
});
_$jscoverage['app/jsUnitCore.js'][746]++;
JsUnitTestSuite.prototype.containsTestPages = (function () {
  _$jscoverage['app/jsUnitCore.js'][747]++;
  return (this._testPages.length > 0);
});
_$jscoverage['app/jsUnitCore.js'][753]++;
JsUnitTestSuite.prototype.nextPage = (function () {
  _$jscoverage['app/jsUnitCore.js'][754]++;
  return this._testPages[(this._pageIndex++)];
});
_$jscoverage['app/jsUnitCore.js'][760]++;
JsUnitTestSuite.prototype.hasMorePages = (function () {
  _$jscoverage['app/jsUnitCore.js'][761]++;
  return (this._pageIndex < this._testPages.length);
});
_$jscoverage['app/jsUnitCore.js'][767]++;
JsUnitTestSuite.prototype.clone = (function () {
  _$jscoverage['app/jsUnitCore.js'][768]++;
  var clone = new JsUnitTestSuite();
  _$jscoverage['app/jsUnitCore.js'][769]++;
  clone._testPages = this._testPages;
  _$jscoverage['app/jsUnitCore.js'][770]++;
  return clone;
});
_$jscoverage['app/jsUnitCore.js'][774]++;
jsUnitTestSuite = JsUnitTestSuite;
_$jscoverage['app/jsUnitCore.js'][776]++;
function setJsUnitTracer(aJsUnitTracer) {
  _$jscoverage['app/jsUnitCore.js'][777]++;
  top.tracer = aJsUnitTracer;
}
_$jscoverage['app/jsUnitCore.js'][780]++;
function jsUnitGetParm(name) {
  _$jscoverage['app/jsUnitCore.js'][781]++;
  return top.params.get(name);
}
_$jscoverage['app/jsUnitCore.js'][784]++;
JsUnit._newOnLoadEvent = (function () {
  _$jscoverage['app/jsUnitCore.js'][785]++;
  isTestPageLoaded = true;
});
_$jscoverage['app/jsUnitCore.js'][788]++;
JsUnit._setOnLoad = (function (windowRef, onloadHandler) {
  _$jscoverage['app/jsUnitCore.js'][789]++;
  var isKonqueror = (navigator.userAgent.indexOf("Konqueror/") != -1);
  _$jscoverage['app/jsUnitCore.js'][791]++;
  if (((typeof windowRef.attachEvent) != "undefined")) {
    _$jscoverage['app/jsUnitCore.js'][793]++;
    windowRef.attachEvent("onload", onloadHandler);
  }
  else {
    _$jscoverage['app/jsUnitCore.js'][794]++;
    if ((((typeof windowRef.addEventListener) != "undefined") && (! isKonqueror))) {
      _$jscoverage['app/jsUnitCore.js'][797]++;
      windowRef.addEventListener("load", onloadHandler, false);
    }
    else {
      _$jscoverage['app/jsUnitCore.js'][798]++;
      if ((((typeof windowRef.document.addEventListener) != "undefined") && (! isKonqueror))) {
        _$jscoverage['app/jsUnitCore.js'][801]++;
        windowRef.document.addEventListener("load", onloadHandler, false);
      }
      else {
        _$jscoverage['app/jsUnitCore.js'][802]++;
        if ((((typeof windowRef.onload) != "undefined") && windowRef.onload)) {
          _$jscoverage['app/jsUnitCore.js'][803]++;
          windowRef.jsunit_original_onload = windowRef.onload;
          _$jscoverage['app/jsUnitCore.js'][804]++;
          windowRef.onload = (function () {
  _$jscoverage['app/jsUnitCore.js'][805]++;
  windowRef.jsunit_original_onload();
  _$jscoverage['app/jsUnitCore.js'][806]++;
  onloadHandler();
});
        }
        else {
          _$jscoverage['app/jsUnitCore.js'][811]++;
          windowRef.onload = onloadHandler;
        }
      }
    }
  }
});
_$jscoverage['app/jsUnitCore.js'][820]++;
JsUnit.Util = {};
_$jscoverage['app/jsUnitCore.js'][827]++;
JsUnit.Util.standardizeHTML = (function (html) {
  _$jscoverage['app/jsUnitCore.js'][828]++;
  var translator = document.createElement("DIV");
  _$jscoverage['app/jsUnitCore.js'][829]++;
  translator.innerHTML = html;
  _$jscoverage['app/jsUnitCore.js'][830]++;
  return JsUnit.Util.trim(translator.innerHTML);
});
_$jscoverage['app/jsUnitCore.js'][837]++;
JsUnit.Util.isBlank = (function (string) {
  _$jscoverage['app/jsUnitCore.js'][838]++;
  return (JsUnit.Util.trim(string) == "");
});
_$jscoverage['app/jsUnitCore.js'][846]++;
JsUnit.Util.push = (function (anArray, anObject) {
  _$jscoverage['app/jsUnitCore.js'][847]++;
  anArray[anArray.length] = anObject;
});
_$jscoverage['app/jsUnitCore.js'][854]++;
JsUnit.Util.pop = (function pop(anArray) {
  _$jscoverage['app/jsUnitCore.js'][855]++;
  if ((anArray.length >= 1)) {
    _$jscoverage['app/jsUnitCore.js'][856]++;
    (delete anArray[(anArray.length - 1)]);
    _$jscoverage['app/jsUnitCore.js'][857]++;
    (anArray.length--);
  }
});
_$jscoverage['app/jsUnitCore.js'][865]++;
JsUnit.Util.getFunctionName = (function (aFunction) {
  _$jscoverage['app/jsUnitCore.js'][866]++;
  var regexpResult = aFunction.toString().match(/function(\s*)(\w*)/);
  _$jscoverage['app/jsUnitCore.js'][867]++;
  if ((regexpResult && (regexpResult.length >= 2) && regexpResult[2])) {
    _$jscoverage['app/jsUnitCore.js'][868]++;
    return regexpResult[2];
  }
  _$jscoverage['app/jsUnitCore.js'][870]++;
  return "anonymous";
});
_$jscoverage['app/jsUnitCore.js'][876]++;
JsUnit.Util.getStackTrace = (function () {
  _$jscoverage['app/jsUnitCore.js'][877]++;
  var result = "";
  _$jscoverage['app/jsUnitCore.js'][879]++;
  if (((typeof arguments.caller) != "undefined")) {
    _$jscoverage['app/jsUnitCore.js'][880]++;
    for (var a = arguments.caller; (a != null); (a = a.caller)) {
      _$jscoverage['app/jsUnitCore.js'][881]++;
      result += ("> " + JsUnit.Util.getFunctionName(a.callee) + "\n");
      _$jscoverage['app/jsUnitCore.js'][882]++;
      if ((a.caller == a)) {
        _$jscoverage['app/jsUnitCore.js'][883]++;
        result += "*";
        _$jscoverage['app/jsUnitCore.js'][884]++;
        break;
      }
}
  }
  else {
    _$jscoverage['app/jsUnitCore.js'][890]++;
    try {
      _$jscoverage['app/jsUnitCore.js'][892]++;
      foo.bar;
    }
    catch (exception) {
      _$jscoverage['app/jsUnitCore.js'][896]++;
      var stack = JsUnit.Util.parseErrorStack(exception);
      _$jscoverage['app/jsUnitCore.js'][897]++;
      for (var i = 1; (i < stack.length); (i++)) {
        _$jscoverage['app/jsUnitCore.js'][899]++;
        result += ("> " + stack[i] + "\n");
}
    }
  }
  _$jscoverage['app/jsUnitCore.js'][904]++;
  return result;
});
_$jscoverage['app/jsUnitCore.js'][911]++;
JsUnit.Util.parseErrorStack = (function (exception) {
  _$jscoverage['app/jsUnitCore.js'][912]++;
  var stack = [];
  _$jscoverage['app/jsUnitCore.js'][913]++;
  var name;
  _$jscoverage['app/jsUnitCore.js'][915]++;
  if (((! exception) || (! exception.stack))) {
    _$jscoverage['app/jsUnitCore.js'][916]++;
    return stack;
  }
  _$jscoverage['app/jsUnitCore.js'][919]++;
  var stacklist = exception.stack.split("\n");
  _$jscoverage['app/jsUnitCore.js'][921]++;
  for (var i = 0; (i < (stacklist.length - 1)); (i++)) {
    _$jscoverage['app/jsUnitCore.js'][922]++;
    var framedata = stacklist[i];
    _$jscoverage['app/jsUnitCore.js'][924]++;
    name = framedata.match(/^(\w*)/)[1];
    _$jscoverage['app/jsUnitCore.js'][925]++;
    if ((! name)) {
      _$jscoverage['app/jsUnitCore.js'][926]++;
      name = "anonymous";
    }
    _$jscoverage['app/jsUnitCore.js'][929]++;
    stack[stack.length] = name;
}
  _$jscoverage['app/jsUnitCore.js'][933]++;
  while ((stack.length && (stack[(stack.length - 1)] == "anonymous"))) {
    _$jscoverage['app/jsUnitCore.js'][934]++;
    stack.length = (stack.length - 1);
}
  _$jscoverage['app/jsUnitCore.js'][936]++;
  return stack;
});
_$jscoverage['app/jsUnitCore.js'][943]++;
JsUnit.Util.trim = (function (string) {
  _$jscoverage['app/jsUnitCore.js'][944]++;
  if ((string == null)) {
    _$jscoverage['app/jsUnitCore.js'][945]++;
    return null;
  }
  _$jscoverage['app/jsUnitCore.js'][947]++;
  var startingIndex = 0;
  _$jscoverage['app/jsUnitCore.js'][948]++;
  var endingIndex = (string.length - 1);
  _$jscoverage['app/jsUnitCore.js'][950]++;
  var singleWhitespaceRegex = /\s/;
  _$jscoverage['app/jsUnitCore.js'][951]++;
  while (string.substring(startingIndex, (startingIndex + 1)).match(singleWhitespaceRegex)) {
    _$jscoverage['app/jsUnitCore.js'][952]++;
    (startingIndex++);
}
  _$jscoverage['app/jsUnitCore.js'][954]++;
  while (string.substring(endingIndex, (endingIndex + 1)).match(singleWhitespaceRegex)) {
    _$jscoverage['app/jsUnitCore.js'][955]++;
    (endingIndex--);
}
  _$jscoverage['app/jsUnitCore.js'][957]++;
  if ((endingIndex < startingIndex)) {
    _$jscoverage['app/jsUnitCore.js'][958]++;
    return "";
  }
  _$jscoverage['app/jsUnitCore.js'][960]++;
  return string.substring(startingIndex, (endingIndex + 1));
});
_$jscoverage['app/jsUnitCore.js'][963]++;
JsUnit.Util.getKeys = (function (obj) {
  _$jscoverage['app/jsUnitCore.js'][964]++;
  var keys = [];
  _$jscoverage['app/jsUnitCore.js'][965]++;
  for (var key in obj) {
    _$jscoverage['app/jsUnitCore.js'][966]++;
    JsUnit.Util.push(keys, key);
}
  _$jscoverage['app/jsUnitCore.js'][968]++;
  return keys;
});
_$jscoverage['app/jsUnitCore.js'][971]++;
JsUnit.Util.inherit = (function (superclass, subclass) {
  _$jscoverage['app/jsUnitCore.js'][972]++;
  var x = (function () {
});
  _$jscoverage['app/jsUnitCore.js'][973]++;
  x.prototype = superclass.prototype;
  _$jscoverage['app/jsUnitCore.js'][974]++;
  subclass.prototype = new x();
});
_$jscoverage['app/jsUnitCore.js'][977]++;
JsUnit._setOnLoad(window, JsUnit._newOnLoadEvent);

