*******************************************************************************
*          NIST/ITL-CSD BioCTS for ANSI/NIST-ITL                              *
*******************************************************************************
* For more information:                                                       *
* Email: biocts@nist.gov                                                      *
* Website: http://www.nist.gov/itl/csd/biometrics/biocta_download.cfm         *
*******************************************************************************
*******************************************************************************
* 09/20/2016 Version Number: Beta 2.0.6107.19926                              *
*******************************************************************************

Bug Fixes:
  + Corrected Table of Contents parse error, where application would hang if
    transaction specified record length longer than data and additional 
    entries are present in the Table of Contents.
  + Corrected parsing errors when transactions are malformed (such as missing
    periods, colons, and other characters in field number tags).
  + Corrected parse issue when the record type has a leading zero. This is 
    now reported as a warning, but the parsing has been corrected.
  + Corrected Out of Memory exception when dealing with larger images
  + Corrected intermittent missing image-type tests for some Binary records
  + Corrected Editor error when loading data into the image field of Binary 
    records
  + Corrected double-click bug so that the editor only opens if the file 
    row is clicked in the editor and only if left clicks are used.
  + Corrected results files for batch files with the same filename. They were
    previously being overwritten, but not display with "-Duplicate" at the 
    end of the result filename.
  + Corrected Editor bug so that subfields and information items display in the 
    correct hierarchy for all field types (was previous malformed for some
    undefined fields and modified fields).
  + Corrected bug in text results wrapping in the Batch Results window for 
    words exactly equal to the width of the window
  + Corrected 10.014-TVC Mnemonic (was displaying as RHC)
  + Corrected 18.017-BCT Mnemonic (was displaying as BCG)
  
Application Changes:
  + Added option to "Output Errors Only in Text Log" under "Output Options" on
    the Options Tab.
  + Modified Program Flow - Batch Testing (Traditional and XML) can no longer
    be run concurrently with the Traditional Editor; this was causing out of
    memory errors.
  + Added quick close key, `Escape` for pop up windows.
  + Added "drag and drop" support to the batch windows so that transactions
    can be dropped into the window.
  + Added "drag and drop" to the Traditional Editor so taht transactions can 
    be dropped in for editing.
  + Traditional Editor improvements:
    -Right-click context menu added to batch files to allow the user to open
     test result and source data files and directories for the selected file,
     or open the file in the editor.
    -Modified "Organize Fields" feature of the Traditional Editor so that the
     following entities cannot be moved (to avoid parsing issues):
     Field xx.001 when in the first position in the Record.
     Field xx.999 when in the last position in the Record.
     Record Type-1 when in the first position in the Transaction.
    -Modified so that Field xx.001 is always added for new records to avoid 
     parsing issues. Added checks to make sure Field xx.001 cannot be 
     modified or deleted when in the first position.
    -Modified so that Record Type-1 cannot be deleted when in the first position.
    -Added several checks for binary record and field additions so that the
     first 4 bytes are always used to indicate the record length.
    -Added checks to make sure binary data is within the min and max length 
     expected.
    -Shows subfields and information items for all fields (even single entry
     data fields) since the standard clarifies that all fields must have one
     subfield and one information item at a minimum.
  + Reclassified assertions as Parse-level if they are related to the parsing
    of the transaction, regardless of whether they are Level 1 or Level 2.
  + Small performance improvements
  + Improvements to XML report output
  + Added test (FieldNumberLengthOneToNine) for FieldNumber digit count 
    from 1 to 9 

*******************************************************************************
* 10/13/2015 Version Number: Beta 2.0.5791.13139                              *
*******************************************************************************

Application Changes:
  + Removed code that assumed ASCII encoding in preparation for future
    versions which may support additional encodings such as UTF-8.
  + Usability modifications to automatically apply changes made in the options
    tab. Also disabled ability to change options while tests are being run.
  + Error Log changes: File name is now BioCTS_AN_ErrorLog.log; and is 
    located in the User's "My Documents" folder 

Traditional Only Changes:
  + Improved parsing feedback for AN-2011, when unsupported or reserved
    Record Types are present in the transaction.
  + Corrected value ranges for Fields 13.013 and 14.013 based on text in 
    section 7.7.4.2. Field 13.013 no longer allows the values 11-15 and 40-54, 
    and does allow new values 85 and 86. Field 14.013 now allows values 51-54.
  + For AN-2011, Corrected Test Names for test previously reported as 
    "Type-XX-SLC-THPS-TVPS-Conditional" and 
    "Type-XX-SLC-SHPS-SVPS-Conditional", where XX is the record type. The 
    names are now "TypeXX-SLC-THPS-TVPS-Conditional" and 
    "TypeXX-SLC-SHPS-SVPS-Conditional" as listed in NIST SP 500-295 R.1. (The
    first dash is removed after Type). The test was also revised so that the
    result is reported even when fields are missing.
  + For AN-2013, Corrected Test Names for test previously reported as 
    "Type-XX-SLC-THPS-TVPS-Conditional" and 
    "Type-XX-SLC-SHPS-SVPS-Conditional", where XX is the record type. The 
    names are now "XX.YYY-TVPS-Value-Dependent-SLC" and 
    "XX.YYY-SVPS-Value-Dependent-SLC" as listed in NIST SP 500-304. The test 
    was also revised so that the result is reported even when fields are 
    missing.
  + For Record Types 16 and 20, adjusted several image tests to report only         
    Pass/OK and Warning (never fail), since NIST SP 500-304 Annex D states
    that "Types 16 and 20 are only subject to the terms defined in this
    section if they contain friction ridge data". See Annex D Figure D.13
    for an overview of the tests.
  + Removed redundant Type 13 test "Type13-13.008-Conditional-SHPS" and
    "Type13-13.008-Conditional-SVPS" from Record-Level since it is already
    reported at the SHPS and SVPS level. 
  + Added support for 19.029-FSP-No Crossing Sides, which checks to see if
    the polygon described by the vertices has any crossing sides (not 
    including end points, which are shared to form the polygon). This test
    was added to the 2013 Update only (see section 8.19.17).
  + Modified "Type20-20.017-20.999-CondCode Dependent" and
    "Type20-20.018-20.999-CondCode Dependent" to test if/then instead of
    if and only if. 
  + Corrected testing of xx.994 XOR xx.999 in AN-2013 transactions. 

XML Only Changes:
  + Added "Partially Supported" for Record-Type 11 instead of "Unknown", and
    added support for basic fields such as 11.001 and 11.002.
  + Modified Leading Zero test so that it no longer stops the software from
    processing null values (when XML elements are missing). Also modified to
    report for all cases (even when leading zeros are not present).
  + Aligned the XML Schema with the latest updated version released by NIST
    in June, 2015:
    - For 2011 and 2013: Updated assertion for field 14.027
      biom:FingerprintImageStitchedIndicator to test for values "true" or "1".
      Also updated the char min and max to 1 to 4. 
    - For 2013 xx.047, Updated to be found in biom:CaptureOrganization/
      nc:OrganizationUnitName. 
    - For 2013, Moved 10.034 into biom:ImageCaptureDetail
    - For 2013 12.994 and 22.994, split EFR into two possible XML elements:
      biom:SourceExternalAnalogFileReferenceText and 
      biom:SourceExternalDigitalFileReferenceText
   

Both Encoding Changes:
  + Corrected image tests for NONE (uncompressed), so that if the dimensions
    are not known, HLL and VLL are not tested against the image. Previously
    these tests incorrectly reported width and height of 0.
  + Tested that Field 17.013 is present if and only if the image field is 
    also present. (This test was missing).


Changes Made to the Sample Data:
  + Added a new 2011 XML sample transaction to test for image dependent 
    requirements for Type-17.
  
*******************************************************************************
* 09/03/2015 Version Number: Beta 2.0.5724.16724                              *
*******************************************************************************

Changes Made to the Sample Data:
  + AN-2013 Traditional Sample Data: one of the files was incorrectly labeled
    as a passing file. "pass-all-supported-types2.an2" is renamed to 
    "fail-all-supported-types-long-data.an2"
  + For AN-2011 and AN-2013, several files containing Type-9 minutiae data
    were corrected so that minutiae, delta, and core information was 
    positioned properly on the image. These files include: 
    "pass-type-9-13-9-14-m1.an2", "pass-type-9-13-m1.an2", and
    "pass-type-9-14-m1.an2", and "pass-all-supported-types.an2" for AN-2011 
    and AN-2013.
 

Traditional Only Changes Made:
  + Bug fix for editor: previously crashed when attempting to reload a file
    from disk after the file was renamed or deleted. The Editor now warns the
    user that it cannot access the file. 
  + Correction to 14.015-FVC-Value (for 2013) to now allow value TPP.
  + Changed how a discrepancy in the standard is handled: Fields 14.023 and
    14.024 Subfield occurence should have an upper limit of 9 Subfields based 
    upon the text in section 7.7.7 of the standard (2011 & 2013).
  + For the Fields describing polygons and paths in section 7.7.12, adjustments 
    were made to the test that checks for unique vertices so that all errors are 
    reported in the same result rather than multiple results. The result is 
    reported as RecordType.FieldNumber-Mnemonic-Vertices Unique. Also, this 
    test was missing for all Fields in Type-9 that required it. Those missing
    tests have been added in this version.
  + Added support for 14.025-ASEG-No Crossing Sides, which checks to see if
    the polygon described by the vertices has any crossing sides (not 
    including end points, which are shared to form the polygon).
  + Added support for a 9.138-NMN-Value-Dependent for AN-2011 and AN-2013 to 
    test that NMN does not equal CMI (see 8.9.5.13 of AN-2013 standard).
  + Attempts to parse Raw data images for display in the GUI.
  

XML Only Changes Made:
  NONE

*******************************************************************************
* 08/06/2015 Version Number: Beta 2.0.5701.16353                              *
*******************************************************************************

Changelog Modifications:
  + Merged older Changelogs into current changelog to provide full history.
  + Added Changelog Tab to About Window in BioCTS

Changes Made for Traditional and XML Encodings:
  + Usability update: Removal of pop-up prompts after testing and various 
    actions. The user interface now displays a label at the bottom right of 
    the window to show messages that do not interrupt the user’s progress. 
  + Usability update: Option to have output window minimized by default to 
    avoid disrupting user.

Traditional Only Changes Made:
  + Full support for all Record Types defined in NIST SP 500-290 and NIST SP 
    500-290 Rev.1 (Update 2013). To achieve this, support for the following
    AN-2011 types was added: 2,7,8,9,16,18,19,20,21,22,98, and 99 and
    support for the following AN-2013 types was added:2,7,8,9,11,12,13,14,
    15,16,17,18,19,20,21,22,98,and 99.
  + Bug fix for 17.016 incorrectly parsing information items.
  + Bug fixes for some information items where the Editor was not saving
    or loading data when the save or load buttons were pressed.  
  + Improvement to parsing of information items: the tool will  now parse 
    information items even if the field does not use the correct 
    structure (i.e. the correct number of subfields/information items)
  + Improvement to parsing of Records: The parsing methods in the previous 
    version of the tool provided poor error messages in some cases by not 
    providing enough detail, such as “Error: Data passed in but not parsed”. 
    Parsing error messages now describe how much data was missing or how much 
    extra data was present in relation to the Transaction Contents found in 
    Field 1.003. When modifying data in the Editor and re-running tests, the 
    previous versions of the tool did not properly report errors at times 
    because the data was not re-parsed; it was instead created from the 
    transaction saved in memory. The new version forces the data in memory 
    to be re-parsed just like a new transaction.  
  + Editor features added: Add Record, Remove Record, Sort Records, Arrange
    Records, Show Record Image, Sort Fields by Number, Organize Fields, Add
    Binary Field, Modify Subfields, View Data Pop-out Window.
  + Edits and updates to output message formats, including shorting of 
    numeric and alphabetic lists to instead be ranges (i.e. 1,2,3,4,5,6,7
    is now 1-7). 

XML Only Changes Made:
  + Support for the Record Types 12 and 22 was added to the AN-2013 CTS.
  + A newer version of the Schema files were released for the base standard.
    These new Schema files are included in this version of the tool. Note:
    modifications were made to these new Schema files to correct discrepancies
    with the base standard. These changes are listed in the BioCTS
    documentation.
  + Corrections were made to the ordering and location of Type-10 elements due
    to changes in the latest version of the Schema files. These elements
    include: biom:ImageCaptureDateEstimateRange and nc:OrganizationUnitName
  + Field 10.034: The value is now checked via the Schema as type xsd:duration
    instead of the format YyyMmmDdd. The Char Count for XML was modified to
    allow any value greater than or equal to 3. 
  + Field 10.049-ULCL: The mnemonic was erroneously reported as "LLCL" in 
    the previous version. The mnemonic is now correctly reported as "ULCL".

    
*******************************************************************************
* 09/09/2014 Version Number: Beta 1.2.5353.15785                              *
*******************************************************************************

Changes Made for Traditional and XML Encodings:
  + This version of BioCTS is the first to support multiple CTSs for each 
    encoding (Traditional or XML). The user is able to select which CTS 
    version (currently 2011 or 2013) for each encoding. 
  + A SHA2 512bit Hash Summary has been added to the Text and XML output.
  + For the 2013 Update, support has been added for ?????? Record Types of 
    the ANSI/NIST-ITL 1-2011: 2013 Update
  + For 2011, the following changes and corrections were implemented:
    -Updated character count max to be 11 instead of 9 for 10.042-TSC. 
     This change was made for both 2011 and 2013 because it was a typo
     in the 2011 standard.
    -Removed duplicate "CondCode Dependent" assertions for Fields 10.026,
     10.027, and 10.028.
    -Added missing "CondCode Dependent-IMT" for 10.023.
    -Added a warning that control characters should not be present in 
     values marked as Unicode. This is only a warning and does not affect
     the overall pass/fail conformance status.
    -Adjusted value constraints for xx.998-LTS, LGS, ELE due to a typo
     in the 2011 version of the standard.
    -A correction was made for Characters Types marked "ANS" and considered
     "ASCII Printable". The space character is now included in this 
     category but was erroneously omitted in the 2011 version of the CTS.

Traditional Only Changes Made:
  + The Transaction File Editor will now check if the Transaction has been 
    modified on the disk and re-parse if needed.
  + Two buttons, "Add Field" and "Remove Field", were added to the 
    Traditional Editor. 
  + The CTS now correctly allows optional information items to be present
    with no data. In this case, a passing Parse-level Result is added to the 
    information item with the message "Optional information item not 
    present".
  + For 2011, the following changes and corrections were implemented:
    -The log output now shares the same descriptive language format as the 
     2011 XML output for some assertions. More may be added in 
     future releases.
    -A missing requirement was added to check for leading zeros in numeric 
     values (see section 8 of the 2011 standard). The sample transactions 
     were updated to reflect this correction.   

XML Only Changes Made:
  + A SHA2 512bit Hash Summary has been added to the Text and XML output 
    for Schema files.
    
    
*******************************************************************************
* 10/24/2013 Version Number: Beta 1.1.5045.10327                              *
*******************************************************************************

Changes Made:
  + Fixed bug for Character Type, where Unicode values outside of the ASCII
    range of 0 to 127 were being erroneously labeled as errors.
  + Added visual error statistics using charts and graphs.

*******************************************************************************
* 08/01/2013 Version Number: Beta 1.1.4961.21207                              *
*******************************************************************************

Changes Made:
  + Added ANSI/NIST-ITL 1-2011 NIEM XML Conformance Test Suite
  + New Features: Updated Text Log Output, Text Log Search and Batch and
    Individual File Statistics added to the User Interface
  + ANSI/NIST-ITL 1-2011 Conformance Test Suite.
    + Added missing Value test (Opaque) for 1.015-CSN.
    + Fixed bug in Assertion "1.012-NTR LTE NSR" where the
    values of 1.011 and 1.012 were reversed.
    + Removed WSQ20 from valid values for field 13.011 because
    it is not a lossless type.
    + Modified L2 Conditional Value test for 1.015-CSN.
    + Updated Assertion ID (testName).
    + Improved test result text.
    + Modified xx.[995,996,997,998,999]-RecordTypes Test Results to be L2
    based on modifications made to CTM tables.
    + Improved Opaque test result message to explain what Opaque means.
    + Fixed bug in xx.998-GCM-Value.
    + Single-character UTM Zone Numers were not tested correctly.
    + Fixed bug where non-Integer values were reported as '0' for some 
    Level-2 tests.
    + 13.024-FRMP-Value Updated to allow any values from Table 8.
    + 17.040-Value Updated to allow values 1 to 9999999 instead of
    0 to 9999999.
    + Updated assertions names for more consistent naming.
    + All "Legacy" assertions renamed to include the field number and
      mnemonic as in "10.022-PXS-Legacy".
    + “Transaction-IDCsRelate” to 
            “Transaction-MatchingIDCValues-ComparableBiometricTypes”
    + Updated assertion name "Records-Reserved" to 
      "Transaction-Records Reserved".
    + Updated assertion name "Reserved Character Types" to 
          "Transaction-Reserved Character Types".
      + Moved assertion to the Transaction level.
    + Updated assertion name "xx.002-IDCSeqValues" to 
      "Transaction-IDCSequentialValues"
    + xx.002-IDCRelate to Transaction-IDCsRelate
    + xx.002-SameDimension to Transaction-MatchingIDCSameImageDimension
    + xx.995-ASC-ACN to Transaction-ASC-ACN-Match
    + xx.995-ASC-ASP to Transaction-ASC-ASP-Match
    + xx.995-ASC-ACN-SeqValues to Transaction-ASC-ACN-SequentialValues
    + xx.997-SOR-SRN to Transaction-SOR-SRN-Match
    + xx.997-SOR-RSP to Transaction-SOR-RSP-Match
    + xx.997-SOR-SRN-SeqValues to Transaction-SOR-RSP-SequentialValues  
    + Type1-Occur Once to Transaction-Type1-OccursOnce
    + Type1-First to Transaction-Type1-First
    + Type3-Zero Occurrences to Transaction-Type3-ZeroOccurrences
    + Type5-Zero Occurrences to Transaction-Type5-ZeroOccurrences
    + Type6-Zero Occurrences to Transaction-Type6-ZeroOccurrences  
    + 10.039-T10-DiffIDC to Transaction-SameT10-DiffIDC
    + 1.003-CRC-Transaction Record Count to Transaction-CRCEqualsRecordCount
    + xx.001-Record Header to Type[ActualRecordType]-Field001EqualsRecordLength
    + xx.001-First to Type[ActualRecordType]-Field001First
    + xx.002-Exists to Type[ActualRecordType]-Field002Exists
    + xx.002-Second to Type[ActualRecordType]-Field002Second
    + xx.995-RecordTypes to Type[ActualRecordType]-Field995NotPresent
    + xx.996-RecordTypes to Type[ActualRecordType]-Field996NotPresent
    + xx.997-RecordTypes to Type[ActualRecordType]-Field997NotPresent
    + xx.998-RecordTypes to Type[ActualRecordType]-Field998NotPresent
    + xx.999-RecordTypes to Type[ActualRecordType]-Field999NotPresent
    + 1.xxx-Mandatory CondCode to Type[ActualRecordType]-MandatoryCondCode
    + 1.xxx-Occurrence to Type[ActualRecordType]-FieldOccurrences 
    + Assertions 1.001 to 1.017-Occurrence were condensed and
      named Type1-FieldOccurrences
    + 10.022-Occurrence Legacy to Type10-Field022Occurrence
    + 4.004-Occurrence to Type4-Field004Occurrence
    + Field Record Type to [ActualRecordType].[ActualFieldNumber]-FieldNumberMatchesRecordType
    + For all assertions named "CharType" followed by one of (A, N, AN, ANS, U, etc...)
      the assertion was renamed to simply "CharType" and the type was moved to the 
      Result message rather than the name.
  + Added "Type{ActualRecordType]-" to the beginning of any assertions
    that are record-level assertions.
    + Renamed Level 2 tests and added new Level 1 tests:
    + 10.011-Value to 10.011-CGA-ValueDependent, Added new Level 1 10.011-CGA-Value
    + 14.011-Value to 14.011-CGA-ValueDependent, Added new Level 1 14.011-CGA-Value
    + 10.042-TSC-Value to 10.042-TSC-ValueDependent, Added new Level 1 10.042-TSC-Value
    + 10.029-FPC-Value to 10.029-FPC-ValueDependent, Added new Level 1 10.029-FPC-Value
    + 10.032-FPC-Value to 10.032-FPC-ValueDependent, Added new Level 1 10.032-FPC-Value
    + All LHC, RHC, TVC, BVC, HPO, VPO, HCX, HCY Value assertions were renamed to
      ValueDependent L2 Tests, and new Level 1 Value tests were added.
  
  
  


*******************************************************************************
* 01/22/2013 Version Number: Beta 1.0.4771.15880                              *
*******************************************************************************

Changes Made:
  + ANSI/NIST-ITL 1-2011 Conformance Test Suite
    + Corrected error where FRMP results were not being displayed.
    + Modified 15.xxx-Occurrence to test that Fields 15.006 through 15.012
      occur one or fewer times because they are listed as Dependent.
    + Modifications to xx.002-IDCRelate:
    + Added support for Minutiae to be compared to Finger, Friction 
    Ridge, Palm, Plantar, and other Minutiae. 
    + Added support for Friction Ridge to be compared to Finger, Minutiae,
    Palm, Plantar, and other Friction Ridge.
    + Added support for Palm and Finger types to be compared if and only
    if their position codes are 33 or 36, which represent the
    hypothenar region. 
    + Aligned sample transactions with all changes made to code. 
    + Fixed problem where an "Unknown" Record would prevent XML output.
  
      

*******************************************************************************
* 10/25/2012 Version Number: Beta 1.0.4681.16434                              *
*******************************************************************************

Changes Made:
  + ANSI/NIST-ITL 1-2011 Conformance Test Suite
    + Adjusted conversion of string values to decimal values to produce
      a consistent and correct output across various localizations.
      (e.g., "12.34" should now convert to 12.34 regardless of locale)


*******************************************************************************
* 9/27/2012 Version Number: Beta 1.0.4653.19915                               *
*******************************************************************************

Changes Made:
  + User Interface
    + Editor - Editor now displays the file path of the file being tested.

    + Editor - The Editor now defaults to the current file name when
      saving the file, previously the file name was empty.

  + ANSI/NIST-ITL 1-2011 Conformance Test Suite
    + Level 2 WSQ Encoder Version - No longer checks for encoder version
      number. No comprehensive list of Encoder Version allowable values
      are specified in the ANSI/NIST-ITL 1-2011 Standard nor
      WSQ Specifications.

    + Binary Record Type Fields - 8.002, 8.006, 8.007, 7.002 are now
      calling correct test functions for Level 1 tests.

    + Large Binary Field Data - Data for large binary fields
      (over 200 bytes) is now displaying as "Data too long to display".