##############################################################################
#                                                                            #
#                 DDL1 DEFINITIONS USED FOR TESTING PURPOSES                 #
#                 ------------------------------------------                 #
#                                                                            #
# This dictionary purposely contains data item definitions that misuse the   #
# _list_reference data item.                                                 #
##############################################################################

data_on_this_dictionary
    _dictionary_name            test_list_reference.dic
    _dictionary_version         0.0.1
    _dictionary_update          2019-05-15
    _dictionary_history
;
 2019-05-15 Created the dictionary.
;

data_test_list_reference_category_[]
_name                      '_test_list_reference_category_[]'
_category                    category_overview
_type                        null
_definition
;
 A category that contains a data items that serve as list references
 as well as data items that reference them.
;

#--BEGIN--
data_test_list_reference_category_simple_key
_name                      '_test_list_reference_category_simple_key'
_category                    test_list_reference_category
_type                        char
_list                        yes
_definition
;
 Item that serves as a simple category key that only contains a single
 data name.
;

data_test_list_reference_category_simple_key_referrer
_name                      '_test_list_reference_category_simple_key_referrer'
_category                    test_list_reference_category
_type                        char
_list                        yes
_list_reference            '_test_list_reference_category_simple_key'
_definition
;
 Item that references a simple key data item.
;
#--END--

#--BEGIN--
data_test_list_reference_category_complex_key_
loop_
_name
'_test_list_reference_category_complex_key_1'
'_test_list_reference_category_complex_key_2'
'_test_list_reference_category_complex_key_3'
_category                    test_list_reference_category
_type                        char
_list                        yes
_definition
;
 Item that serves as a complex category key that contains several
 data names.
;

data_test_list_reference_category_complex_key_referrer
_name                      '_test_list_reference_category_complex_key_referrer'
_category                    test_list_reference_category
_type                        char
_list                        yes
loop_
_list_reference 
'_test_list_reference_category_complex_key_1'
'_test_list_reference_category_complex_key_3'
'_test_list_reference_category_simple_key_referrer'
_definition
;
 Item that references a complex key data item.
;
#--END--

#--BEGIN--
data_test_list_reference_category_unrecognised_key_referrer
_name                      '_test_list_reference_category_unrecognised_key_referrer'
_category                    test_list_reference_category
_type                        char
_list                        yes
loop_
_list_reference
'_test_list_reference_category_unrecognised_key_1'
'_test_list_reference_category_unrecognised_complex_key_'
_definition
;
 Item that provides a non-recognised items as list references.
;
#--END--

#--BEGIN--
data_test_list_reference_alt_[]
_name                      '_test_list_reference_alt_[]'
_category                    category_overview
_type                        null
_definition
;
 A category that contains a data item that incorrectly references a
 data item from a different category.
;

data_test_list_reference_alt_mismatching_category_referrer
_name                      '_test_list_reference_alt_mismatching_category_referrer'
_category                    test_list_reference_alt
_type                        char
_list                        yes
loop_
_list_reference
'_test_list_reference_category_simple_key'
_definition
;
 Item that provides a reference to an item from a different category.
;

data_test_list_reference_alt_unlooped_key_referrer
_name                      '_test_list_reference_alt_unlooped_key_referrer'
_category                    test_list_reference_alt
_type                        char
_list                        yes
_list_reference            '_test_list_reference_unlooped_category_item'
_definition
;
 Item that provides a reference to an unlooped item from a different category.
;
#--END--

#--BEGIN--
data_test_list_reference_unlooped_category_[]
_name                      '_test_list_reference_unlooped_category_[]'
_category                    category_overview
_type                        null
_definition
;
 A category that contains an unlooped data item.
;

data_test_list_reference_unlooped_category_item
_name                      '_test_list_reference_unlooped_category_item'
_category                    test_list_reference_unlooped_category
_type                        char
_list                        no
_definition
;
 An unlooped data item.
;
#--END--

#--BEGIN--
data_test_list_reference_category_external_key_referrer
_name                      '_test_list_reference_category_external_key_referrer'
_category                    test_external_list_reference_category
_type                        char
_list                        yes
_list_reference            '_test_external_list_reference_category_simple_key'
_definition
;
 Item that references an item from a differenct dictionary.
;
#--END--

#--BEGIN--
# [FAIL]
data_test_list_reference_self_reference_[]
_name                      '_test_list_reference_self_reference_[]'
_category                    category_overview
_type                        null
_definition
;
 A category that contains a data item that redundantly references
 itself as a list reference.
;

data_test_list_reference_self_reference_item
_name                      '_test_list_reference_self_reference_item'
_category                    test_list_reference_self_reference
_type                        char
_list                        yes
_list_reference            '_test_list_reference_self_reference_item'
_definition
;
 Item that redundantly references itself as a list reference.
;
#--END--

#--BEGIN--
# [PASS]
data_test_list_reference_partial_self_reference_[]
_name                      '_test_list_reference_partial_self_reference_[]'
_category                    category_overview
_type                        null
_definition
;
 A category that contains data items that reference themselves as a part
 of a composite list reference.
;

data_test_list_reference_partial_self_reference_item_1
_name                      '_test_list_reference_partial_self_reference_item_1'
_category                    test_list_reference_partial_self_reference
_type                        char
_list                        yes
loop_
_list_reference
'_test_list_reference_partial_self_reference_item_1'
'_test_list_reference_partial_self_reference_item_2'
_definition
;
 Item 1 that references itself as a part of a composite list reference.
;

data_test_list_reference_partial_self_reference_item_2
_name                      '_test_list_reference_partial_self_reference_item_2'
_category                    test_list_reference_partial_self_reference
_type                        char
_list                        yes
loop_
_list_reference
'_test_list_reference_partial_self_reference_item_1'
'_test_list_reference_partial_self_reference_item_2'
_definition
;
 Item 2 that references itself as a part of a composite list reference.
;
#--END--
