/* File:     assert.js
   Abstract: Assertion library
   Created:  January, 2003
*/

function parseCallerName(callerObj) {
  if (callerObj == null) {
    return '';
  }
  else {
    var funcName = callerObj.toString();
    return funcName.substring(10, funcName.indexOf(")") + 1);
  }
}

function AssertTrue(arg, msg) {
  if (!arg) {
     var caller1 = parseCallerName(AssertTrue.caller);
     var caller2 = parseCallerName(AssertTrue.caller.caller);
     var prepend = '';
     if (caller2 != '') {
       prepend = caller2 + '.' + caller1
     } 
     else
       prepend = caller1;
     
     alert('Assertion failed:\n' + prepend + ' - ' + msg);
  }
}

function AssertFalse(arg, msg) {
  if (arg) {
     var caller1 = parseCallerName(AssertFalse.caller);
     var caller2 = parseCallerName(AssertFalse.caller.caller);
     var prepend = '';
     if (caller2 != '') {
       prepend = caller2 + '.' + caller1
     } 
     else
       prepend = caller1;
     
     alert('Assertion failed:\n' + prepend + ' - ' + msg);
  }
}
