{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /AcroForm <<
    /Fields [
      4 0 R
      10 0 R
      11 0 R
      12 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
    12 0 R
  ]
>>
endobj
{{object 4 0}} <<
  /Type /Annot
  /FT /Tx
  /T (Text Box)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [ 100 160 200 190 ]
  /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");

      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)");

      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%");

      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%");

      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(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%");

      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%");

      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%");

      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%");

      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%");

      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("**********************");

      // These two should throw "TypeError", not "AFSimple_Calculate".
      // https://crbug.com/pdfium/1396
      expectError('', "AFSimple_Calculate()");
      expectError('', "AFSimple_Calculate(1)");
      // This should "pass", but currently throws an error.
      // https://crbug.com/pdfium/1396
      expectEventValue('', "AFSimple_Calculate('blooey', ['Text2', 'Text3'])", 0);
      // This should fail with TypeError, since a field does not exist, but
      // currently passes. https://crbug.com/pdfium/1396
      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);
      expectEventValue('', "AFSimple_Calculate('AVG', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('SUM', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('MIN', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('MAX', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('AVG', ['Text2', 'Text4'])", (123 + 407.96) / 2);
      expectEventValue('', "AFSimple_Calculate('SUM', ['Text2', 'Text4'])", 123 + 407.96);
      expectEventValue('', "AFSimple_Calculate('PRD', ['Text2', 'Text4'])", 50179.08);

      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 0 200 30]
  /Subtype /Widget
  /V (123)
>>
endobj
{{object 11 0}} <<
  /Type /Annot
  /FT /Tx
  /T (Text3)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [100 40 200 70]
  /Subtype /Widget
  /V (456)
>>
endobj
{{object 12 0}} <<
  /Type /Annot
  /FT /Tx
  /T (Text4)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [100 80 200 110]
  /Subtype /Widget
  /V (407.96)
>>
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
