{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /AcroForm <<
    /Fields [
      4 0 R
      10 0 R
      11 0 R
    ]
    /DR 5 0 R
  >>
>>
endobj
{{object 2 0}} <<
  /Count 1
  /Kids [ 3 0 R ]
  /Type /Pages
>>
endobj
{{object 3 0}} <<
  /Type /Page
  /Parent 2 0 R
  /Resources 5 0 R
  /MediaBox [ 0 0 300 200 ]
  /Contents 8 0 R
  /Annots [
    4 0 R
    10 0 R
    11 0 R
  ]
>>
endobj
{{object 4 0}} <<
  /Type /Annot
  /FT /Tx
  /T (Text Box)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [ 100 100 200 130 ]
  /Subtype /Widget
  /AA <<
    /F 9 0 R
  >>
>>
endobj
{{object 5 0}} <<
  /Font 6 0 R
>>
endobj
{{object 6 0}} <<
  /F1 7 0 R
>>
endobj
{{object 7 0}} <<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Helvetica
>>
endobj
{{object 8 0}} <<
{{streamlen}}
>>
stream
endstream
endobj
{{object 9 0}} <<
  /JS (
    function expect(initial, expression, expected) {
      try {
        event.value = initial;
        var actual = eval(expression);
        if (actual == expected) {
          app.alert('PASS: ' + expression + ' = ' + actual);
        } else {
          app.alert('FAIL: ' + expression + ' = ' + actual + ', expected ' + expected + " ");
        }
      } catch (e) {
        app.alert('ERROR: ' + e);
      }
    }

    function expectEventValue(initial, expression, expected) {
      try {
        event.value = initial;
        eval(expression);
        var actual = event.value;
        if (actual == expected) {
          app.alert('PASS: ' + expression + ' = ' + actual);
        } else {
          app.alert('FAIL: ' + expression + ' = ' + actual + ', expected ' + expected + " ");
        }
      } catch (e) {
        app.alert('ERROR: ' + e);
      }
    }

    function expectError(initial, expression) {
      try {
        event.value = initial;
        var actual = eval(expression);
        app.alert('FAIL: ' + expression + ' = ' + actual + ', expected to throw');
      } catch (e) {
        app.alert('PASS: ' + expression + ' threw ' + e);
      }
    }

    try {
      app.alert("*** starting test ***");

      expectError('', "AFDate_Format()");
      expectError('', "AFDate_Format(1, 2)");
      expectEventValue("GMT", "AFDate_Format(1)", "1/1/70");
      expectEventValue("PDT", "AFDate_Format(1)", "5/9/14");
      expectEventValue("GMT", "AFDate_Format('blooey')", "1/1");
      expectEventValue("PDT", "AFDate_Format('blooey')", "5/9");

      app.alert("**********************");

      expectError('', "AFDate_FormatEx()");
      expectError('', "AFDate_FormatEx(1, 2)");
      expectEventValue("x", "AFDate_FormatEx(2)", "2");
      expectEventValue("x", "AFDate_FormatEx('blooey')", "blooey");
      expectEventValue("x", "AFDate_FormatEx('m/d')", "5/9");

      app.alert("**********************");

      expectError('', "AFDate_Keystroke()");
      expectError('', "AFDate_Keystroke(1, 2)");
      expectEventValue("04/19", "AFDate_Keystroke(2)", "04/19");
      expectEventValue("04/19/15", "AFDate_Keystroke('blooey')", "04/19/15");

      app.alert("**********************");

      expectError('', "AFDate_KeystrokeEx()");
      expectError('', "AFDate_KeystrokeEx(1, 2)");
      expectEventValue("x", "AFDate_KeystrokeEx(2)", "x");
      expectEventValue("x", "AFDate_KeystrokeEx('blooey')", "x");
      expectEventValue("x", "AFDate_KeystrokeEx('m/d')", "x");

      app.alert("**********************");

      expectError('', "AFExtractNums()");
      expectError('', "AFExtractNums(1, 2)");
      expect('', "AFExtractNums('100 200')", "100,200");

      app.alert("**********************");

      expectError('', "AFMakeNumber()");
      expectError('', "AFMakeNumber(1, 2)");
      expect('', "AFMakeNumber('2blooey')", 0);
      expect('', "AFMakeNumber(1)", 1);
      expect('', "AFMakeNumber('1.2')", 1.2);
      expect('', "AFMakeNumber('1,2')", 1.2);

      app.alert("**********************");

      expectError('', "AFMergeChange()");
      expectError('', "AFMergeChange(1, 2)");
      expect("one", "AFMergeChange(undefined)", "one");

      app.alert("**********************");

      expectError('', "AFNumber_Format()");
      expectError('', "AFNumber_Format(0, 1, 0, 0, '', false, 42)");
      expectEventValue("blooey", "AFNumber_Format(0, 1, 0, 0, '', false)", 0);
      expectEventValue(12, "AFNumber_Format(0, 1, 0, 0, '', false)", 12);

      app.alert("**********************");

      expectError('', "AFNumber_Keystroke()");
      expectError('', "AFNumber_Keystroke(1)");
      expectError("abc", "AFNumber_Keystroke(1, 2)");
      expectEventValue("123", "AFNumber_Keystroke(1, 2)", "123");
      expectEventValue("123", "AFNumber_Keystroke(1, 2, 3)", "123");

      app.alert("**********************");

      expectError('', "AFParseDateEx()");
      expectError('', "AFParseDateEx(1, 2, 3)");
      expect('', "AFParseDateEx(1, 2)", "1399672130000");

      app.alert("**********************");

      // Requires at least 2 arguments.
      expectError('', "AFPercent_Format()");
      expectError('', "AFPercent_Format(0)");

      // Extra arguments are ignored.
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0, 0, 0, 0)", "-512.3%");

      // There seems to be an extra bPercentPrepend parameter that may have been
      // added in later versions.
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 1)", "%-512.3");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 2)", "%-512.3");
      expectEventValue('', "AFPercent_Format(10, 0, 0)", "0.0000000000%");
      expectEventValue('', "AFPercent_Format(10, 0, 1)", "%0.0000000000");
      expectEventValue('', "AFPercent_Format(10, 0, 2)", "%0.0000000000");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 0, 0)", "98,765,432,100%");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 1, 0)", "98765432100%");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 2, 0)", "98.765.432.100%");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 0, 1)", "%98,765,432,100");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 1, 1)", "%98765432100");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 2, 1)", "%98.765.432.100");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 0, 2)", "%98,765,432,100");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 1, 2)", "%98765432100");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 2, 2)", "%98.765.432.100");

      // InvalidArgsError
      expectError(0, "AFPercent_Format(-3, 0)");
      expectError(0, "AFPercent_Format(-3, 1)");
      expectError(0, "AFPercent_Format(-1, 3)");
      expectError(0, "AFPercent_Format(0, -3)");
      expectError(0, "AFPercent_Format(0, -1)");
      expectError(0, "AFPercent_Format(0, 50)");
      expectError(0, "AFPercent_Format(0, 51)");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue('', "AFPercent_Format(0, 0)", "0%");
      // expectEventValue('', "AFPercent_Format(0, 1)", "0%");
      // expectEventValue('', "AFPercent_Format(0, 2)", "0%");
      // expectEventValue('', "AFPercent_Format(0, 3)", "0%");
      // expectEventValue('', "AFPercent_Format(0, 4)", "0%");

      expectEventValue('', "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue('', "AFPercent_Format(1, 1)", "0.0%");
      expectEventValue('', "AFPercent_Format(1, 2)", "0,0%");
      expectEventValue('', "AFPercent_Format(1, 3)", "0,0%");
      expectEventValue('', "AFPercent_Format(1, 4)", "0.0%");
      expectEventValue('', "AFPercent_Format(2, 0)", "0.00%");
      expectEventValue('', "AFPercent_Format(2, 1)", "0.00%");
      expectEventValue('', "AFPercent_Format(2, 2)", "0,00%");
      expectEventValue('', "AFPercent_Format(2, 3)", "0,00%");
      expectEventValue('', "AFPercent_Format(2, 4)", "0.00%");
      expectEventValue('', "AFPercent_Format(3, 0)", "0.000%");
      expectEventValue('', "AFPercent_Format(3, 1)", "0.000%");
      expectEventValue('', "AFPercent_Format(3, 2)", "0,000%");
      expectEventValue('', "AFPercent_Format(3, 3)", "0,000%");
      expectEventValue('', "AFPercent_Format(3, 4)", "0.000%");
      expectEventValue('', "AFPercent_Format(10, 0)", "0.0000000000%");
      expectEventValue('', "AFPercent_Format(10, 1)", "0.0000000000%");
      expectEventValue('', "AFPercent_Format(10, 2)", "0,0000000000%");
      expectEventValue('', "AFPercent_Format(10, 3)", "0,0000000000%");
      expectEventValue('', "AFPercent_Format(10, 4)", "0.0000000000%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(0, "AFPercent_Format(0, 0)", "0%");
      // expectEventValue(0, "AFPercent_Format(0, 1)", "0%");
      // expectEventValue(0, "AFPercent_Format(0, 2)", "0%");
      // expectEventValue(0, "AFPercent_Format(0, 3)", "0%");
      // expectEventValue(0, "AFPercent_Format(0, 4)", "0%");

      expectEventValue(0, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0, "AFPercent_Format(1, 1)", "0.0%");
      expectEventValue(0, "AFPercent_Format(1, 2)", "0,0%");
      expectEventValue(0, "AFPercent_Format(1, 3)", "0,0%");
      expectEventValue(0, "AFPercent_Format(1, 4)", "0.0%");
      expectEventValue(0, "AFPercent_Format(2, 0)", "0.00%");
      expectEventValue(0, "AFPercent_Format(2, 1)", "0.00%");
      expectEventValue(0, "AFPercent_Format(2, 2)", "0,00%");
      expectEventValue(0, "AFPercent_Format(2, 3)", "0,00%");
      expectEventValue(0, "AFPercent_Format(2, 4)", "0.00%");
      expectEventValue(0, "AFPercent_Format(3, 0)", "0.000%");
      expectEventValue(0, "AFPercent_Format(3, 1)", "0.000%");
      expectEventValue(0, "AFPercent_Format(3, 2)", "0,000%");
      expectEventValue(0, "AFPercent_Format(3, 3)", "0,000%");
      expectEventValue(0, "AFPercent_Format(3, 4)", "0.000%");
      expectEventValue(0, "AFPercent_Format(10, 0)", "0.0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 1)", "0.0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 2)", "0,0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 3)", "0,0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 4)", "0.0000000000%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(-5.1234, "AFPercent_Format(0, 0)", "-512%");
      // expectEventValue(-5.1234, "AFPercent_Format(0, 1)", "-512%");
      // expectEventValue(-5.1234, "AFPercent_Format(0, 2)", "-512%");
      // expectEventValue(-5.1234, "AFPercent_Format(0, 3)", "-512%");
      // expectEventValue(-5.1234, "AFPercent_Format(0, 4)", "-512%");

      expectEventValue(-5.1234, "AFPercent_Format(1, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 1)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 2)", "-512,3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 3)", "-512,3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 4)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 0)", "-512.34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 1)", "-512.34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 2)", "-512,34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 3)", "-512,34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 4)", "-512.34%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 0)", "-512.340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 1)", "-512.340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 2)", "-512,340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 3)", "-512,340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 4)", "-512.340%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 0)", "-512.3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 1)", "-512.3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 2)", "-512,3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 3)", "-512,3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 4)", "-512.3400000000%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(5.1234, "AFPercent_Format(0, 0)", "512%");
      // expectEventValue(5.1234, "AFPercent_Format(0, 1)", "512%");
      // expectEventValue(5.1234, "AFPercent_Format(0, 2)", "512%");
      // expectEventValue(5.1234, "AFPercent_Format(0, 3)", "512%");
      // expectEventValue(5.1234, "AFPercent_Format(0, 4)", "512%");

      expectEventValue(5.1234, "AFPercent_Format(1, 0)", "512.3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 1)", "512.3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 2)", "512,3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 3)", "512,3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 4)", "512.3%");
      expectEventValue(5.1234, "AFPercent_Format(2, 0)", "512.34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 1)", "512.34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 2)", "512,34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 3)", "512,34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 4)", "512.34%");
      expectEventValue(5.1234, "AFPercent_Format(3, 0)", "512.340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 1)", "512.340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 2)", "512,340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 3)", "512,340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 4)", "512.340%");
      expectEventValue(5.1234, "AFPercent_Format(10, 0)", "512.3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 1)", "512.3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 2)", "512,3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 3)", "512,3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 4)", "512.3400000000%");

      expectEventValue(12.3456, "AFPercent_Format(1, 0)", "1,234.6%");
      expectEventValue(12.3456, "AFPercent_Format(4, 1)", "1234.5600%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(0.009876, "AFPercent_Format(0, 0)", "1%");
      // expectEventValue(0.009876, "AFPercent_Format(0, 1)", "1%");
      // expectEventValue(0.009876, "AFPercent_Format(0, 2)", "1%");
      // expectEventValue(0.009876, "AFPercent_Format(0, 3)", "1%");
      // expectEventValue(0.009876, "AFPercent_Format(0, 4)", "1%");

      expectEventValue(0.009876, "AFPercent_Format(1, 0)", "1.0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 1)", "1.0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 2)", "1,0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 3)", "1,0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 4)", "1.0%");
      expectEventValue(0.009876, "AFPercent_Format(2, 0)", "0.99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 1)", "0.99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 2)", "0,99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 3)", "0,99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 4)", "0.99%");
      expectEventValue(0.009876, "AFPercent_Format(3, 0)", "0.988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 1)", "0.988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 2)", "0,988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 3)", "0,988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 4)", "0.988%");
      expectEventValue(0.009876, "AFPercent_Format(10, 0)", "0.9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 1)", "0.9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 2)", "0,9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 3)", "0,9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 4)", "0.9876000000%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 0)", "98,765,432,100%");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 1)", "98765432100%");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 2)", "98.765.432.100%");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 3)", "98765432100%");
      // expectEventValue(987654321.001234, "AFPercent_Format(0, 4)", "98'765'432'100%");

      expectEventValue(987654321.001234, "AFPercent_Format(1, 0)", "98,765,432,100.1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 1)", "98765432100.1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 2)", "98.765.432.100,1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 3)", "98765432100,1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 4)", "98'765'432'100.1%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 0)", "98,765,432,100.12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 1)", "98765432100.12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 2)", "98.765.432.100,12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 3)", "98765432100,12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 4)", "98'765'432'100.12%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 0)", "98,765,432,100.123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 1)", "98765432100.123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 2)", "98.765.432.100,123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 3)", "98765432100,123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 4)", "98'765'432'100.123%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 0)", "98,765,432,100.1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 1)", "98765432100.1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 2)", "98.765.432.100,1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 3)", "98765432100,1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 4)", "98'765'432'100.1234130859%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(987654321, "AFPercent_Format(0, 0)", "98,765,432,100%");
      // expectEventValue(987654321, "AFPercent_Format(0, 1)", "98765432100%");
      // expectEventValue(987654321, "AFPercent_Format(0, 2)", "98.765.432.100%");
      // expectEventValue(987654321, "AFPercent_Format(0, 3)", "98765432100%");
      // expectEventValue(987654321, "AFPercent_Format(0, 4)", "98'765'432'100%");

      expectEventValue(987654321, "AFPercent_Format(1, 0)", "98,765,432,100.0%");
      expectEventValue(987654321, "AFPercent_Format(1, 1)", "98765432100.0%");
      expectEventValue(987654321, "AFPercent_Format(1, 2)", "98.765.432.100,0%");
      expectEventValue(987654321, "AFPercent_Format(1, 3)", "98765432100,0%");
      expectEventValue(987654321, "AFPercent_Format(1, 4)", "98'765'432'100.0%");
      expectEventValue(987654321, "AFPercent_Format(2, 0)", "98,765,432,100.00%");
      expectEventValue(987654321, "AFPercent_Format(2, 1)", "98765432100.00%");
      expectEventValue(987654321, "AFPercent_Format(2, 2)", "98.765.432.100,00%");
      expectEventValue(987654321, "AFPercent_Format(2, 3)", "98765432100,00%");
      expectEventValue(987654321, "AFPercent_Format(2, 4)", "98'765'432'100.00%");
      expectEventValue(987654321, "AFPercent_Format(3, 0)", "98,765,432,100.000%");
      expectEventValue(987654321, "AFPercent_Format(3, 1)", "98765432100.000%");
      expectEventValue(987654321, "AFPercent_Format(3, 2)", "98.765.432.100,000%");
      expectEventValue(987654321, "AFPercent_Format(3, 3)", "98765432100,000%");
      expectEventValue(987654321, "AFPercent_Format(3, 4)", "98'765'432'100.000%");
      expectEventValue(987654321, "AFPercent_Format(10, 0)", "98,765,432,100.0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 1)", "98765432100.0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 2)", "98.765.432.100,0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 3)", "98765432100,0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 4)", "98'765'432'100.0000000000%");

      expectEventValue(0.01, "AFPercent_Format(1, 0)", "1.0%");
      expectEventValue(0.001, "AFPercent_Format(1, 0)", "0.1%");
      expectEventValue(0.0001, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0.00001, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0.000001, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0.000001, "AFPercent_Format(10, 2)", "0,0001000000%");

      // Acrobat behaves strangely with smaller values.
      // expectEventValue(0.0000001, "AFPercent_Format(1, 0)", "-170.0%");
      // expectEventValue(0.00000001, "AFPercent_Format(1, 0)", "-180.0%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(0, "AFPercent_Format(20, 0)", "0.00000000000000000000%");
      // expectEventValue(0, "AFPercent_Format(308, 0)", "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%");
      // Acrobat starts failing here.
      // expectEventValue(0, "AFPercent_Format(309, 0)", "-1.#IND000...000%");

      // Inconsistent with PDFium due to bug 138.
      // expectEventValue(0.000001, "AFPercent_Format(308, 0)", "0.00009999999999999999123964644631712417321978136897087097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%");
      // After 512, Acrobat probably ran out of buffer space.
      // expectEventValue(0, "AFPercent_Format(513, 0)", "%");

      app.alert("**********************");

      expectError('', "AFPercent_Keystroke()");
      expectError('', "AFPercent_Keystroke(1)");
      expectError("abc", "AFPercent_Keystroke(1, 0)");
      expectEventValue(".123", "AFPercent_Keystroke(1, 0)", ".123");

      app.alert("**********************");

      expectError('', "AFRange_Validate()", '');
      expectError('', "AFRange_Validate(1, 2, 3, 4, 5)", '');
      expectEventValue("1", "AFRange_Validate(true, 2, true, 4)", "1");  // Notifies "between".
      expectEventValue("5", "AFRange_Validate(true, 2, true, 4)", "5");  // Notifies "between".
      expectEventValue("1", "AFRange_Validate(true, 2, false, 4)", "1");  // Notifies "greater".
      expectEventValue("5", "AFRange_Validate(false, 2, true, 4)", "5");  // Notifies "less".
      expectEventValue("3", "AFRange_Validate(true, 2, true, 4)", "3");   // No notification.
      expectEventValue("1", "AFRange_Validate(false, 2, true, 4)", "1");  // No notification.
      expectEventValue("5", "AFRange_Validate(true, 2, false, 4)", "5");  // No notification.

      app.alert("**********************");

      expectError('', "AFSimple()", 2);
      expectError('', "AFSimple(1, 2, 3, 4)");
      expectError('', "AFSimple(1, 2, 3)");
      expectError('', "AFSimple('nonesuch', 2, 3)");
      expect('', "AFSimple('AVG', 2, 3)", 2.5);
      expect('', "AFSimple('MIN', 2, 3)", 2);
      expect('', "AFSimple('MAX', 2, 3)", 3);
      expect('', "AFSimple('SUM', 2, 3)", 5);
      expect('', "AFSimple('PRD', 2, 3)", 6);
      expectError('', "AFSimple('AVG', 2, 'nonesuch')");
      expectError('', "AFSimple('MIN', 2, 'nonesuch')");
      expectError('', "AFSimple('MAX', 2, 'nonesuch')");
      expectError('', "AFSimple('SUM', 2, 'nonesuch')");
      expectError('', "AFSimple('PRD', 2, 'nonesuch')");

      app.alert("**********************");

      expectError('', "AFSimple_Calculate()");
      expectError('', "AFSimple_Calculate(1)");
      expectEventValue('', "AFSimple_Calculate('blooey', ['Text2', 'Text3'])", 0);
      expectEventValue('', "AFSimple_Calculate('AVG', [1, 'nonesuch', {'crud': 32}])", 0);
      expectEventValue('', "AFSimple_Calculate('AVG', ['Text2', 'Text3'])", (123 + 456) / 2);
      expectEventValue('', "AFSimple_Calculate('SUM', ['Text2', 'Text3'])", 123 + 456);
      expectEventValue('', "AFSimple_Calculate('PRD', ['Text2', 'Text3'])", 123 * 456);
      expectEventValue('', "AFSimple_Calculate('MIN', ['Text2', 'Text3'])", 123);
      expectEventValue('', "AFSimple_Calculate('MAX', ['Text2', 'Text3'])", 456);
      expectEventValue('', "AFSimple_Calculate('AVG', 'Text2, Text3')", (123 + 456) / 2);

      app.alert("**********************");

      expectError('', "AFSpecial_Format()", '');
      expectError('', "AFSpecial_Format(1, 2)", '');
      expectEventValue('', "AFSpecial_Format(0)", "");
      expectEventValue('', "AFSpecial_Format(1)", "-");
      expectEventValue('', "AFSpecial_Format(2)", "-");
      expectEventValue('', "AFSpecial_Format(3)", "--");
      expectEventValue("0123456789", "AFSpecial_Format(0)", "01234");
      expectEventValue("0123456789", "AFSpecial_Format(1)", "01234-5678");
      expectEventValue("0123456789", "AFSpecial_Format(2)", "(012) 345-6789");
      expectEventValue("0123456789", "AFSpecial_Format(3)", "012-34-5678");

      app.alert("**********************");

      expectError('', "AFSpecial_Keystroke()");
      expectError('', "AFSpecial_Keystroke(65, 66)");
      expectEventValue("abc", "AFSpecial_Keystroke(65)", "abc");

      app.alert("**********************");

      expectError('', "AFSpecial_KeystrokeEx()", '');
      expectEventValue("12345", "AFSpecial_KeystrokeEx('')", "12345");      // No notification.
      expectEventValue("123", "AFSpecial_KeystrokeEx('9999')", "123");      // Notifies invalid.
      expectEventValue("12345", "AFSpecial_KeystrokeEx('9999')", "12345");  // Notifies too long.
      expectEventValue("abcd", "AFSpecial_KeystrokeEx('9999')", "abcd");    // Notifies invalid.
      expectEventValue("1234", "AFSpecial_KeystrokeEx('9999')", "1234");
      expectEventValue("abcd", "AFSpecial_KeystrokeEx('XXXX')", "abcd");

      app.alert("**********************");

      expectError('', "AFTime_Format()");
      expectError('', "AFTime_Format(1, 2)");
      expectEventValue(0, "AFTime_Format(1)", "9:48 pm");

      app.alert("**********************");

      expectError('', "AFTime_FormatEx()");
      expectError('', "AFTime_FormatEx('blooey', 42)");
      expectEventValue(0, "AFTime_FormatEx('blooey')", "blooey");

      app.alert("**********************");

      expectError('', "AFTime_Keystroke()", '');
      expectError('', "AFTime_Keystroke(1, 2)", '');
      expectEventValue("12:03", "AFTime_Keystroke(65)", "12:03");

      app.alert("**********************");

      expectError('', "AFTime_KeystrokeEx()");
      expectError('', "AFTime_KeystrokeEx(1, 2)");
      expectEventValue("12:04", "AFTime_KeystrokeEx('blooey')", "12:04");

      app.alert("*** ending test ***");
    } catch (e) {
      app.alert("Truly unexpected error occured: " + e);
    }
  )
  /S /JavaScript
>>
endobj
{{object 10 0}} <<
  /Type /Annot
  /FT /Tx
  /T (Text2)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [100 40 200 70]
  /Subtype /Widget
  /V (123)
>>
endobj
{{object 11 0}} <<
  /Type /Annot
  /FT /Tx
  /T (Text3)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [100 0 200 30]
  /Subtype /Widget
  /V (456)
>>
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
