def METHOD_NAME():
    nckeys_check = set([
            'command_line','debug', 'dependent_modes', 'emulate',
            'file_locations', 'generate_only', 'graph_sims', 'indent',
            'load_images', 'local_directory', 'mode', 'modes', 'monitor',
            'primary_modes', 'progress_tty', 'pseudo_dir',
            'pseudopotentials', 'remote_directory', 'results', 'runs',
            'skip_submit', 'sleep', 'stages', 'stages_set', 'status',
            'status_modes', 'status_only', 'trace', 'verbose'
            ])
    nnckeys_check = set([
            'basis_dir', 'basissets', 'pseudo_dir', 'pseudopotentials'
            ])
    setkeys_check = set([
            'command_line','basis_dir', 'basissets', 'debug',
            'dependent_modes', 'emulate', 'file_locations', 'generate_only',
            'graph_sims', 'indent', 'load_images', 'local_directory', 'mode',
            'modes', 'monitor', 'primary_modes', 'progress_tty',
            'pseudo_dir', 'pseudopotentials', 'remote_directory', 'results',
            'runs', 'skip_submit', 'sleep', 'stages', 'stages_set', 'status',
            'status_modes', 'status_only', 'trace', 'verbose'
            ])
    setkeys_allowed = setkeys_check | Settings.allowed_vars
    nckeys  = set(nexus_core.keys())
    nnckeys = set(nexus_noncore.keys())
    setkeys = set(settings.keys())
    assert(nckeys==nckeys_check)
    assert(nnckeys==nnckeys_check)
    assert(setkeys>=setkeys_check)
    assert(setkeys<=setkeys_allowed)
    pairs = [(settings,nexus_core),
             (settings,nexus_noncore),
             (nexus_core,nexus_noncore)
             ]
    for o1,o2 in pairs:
        shared_keys = set(o1.keys()) & set(o2.keys())
        for k in shared_keys:
            v1 = o1[k]
            v2 = o2[k]
            if isinstance(v1,obj):
                assert(object_eq(v1,v2))
            else:
                assert(value_eq(v1,v2))
            #end if
        #end for
    #end for