function is_ok=cosmo_check_neighborhood(nbrhood,varargin)
% check that a neighborhood is kosher
%
% is_ok=cosmo_check_neighborhood(nbrhood,[raise])
%
% Inputs:
% nbrhood neighborhood struct, for example from
% cosmo_spherical_neighborhood,
% cosmo_surficial_neighborhood,
% surfing_interval_neighborhood, or
% cosmo_meeg_chan_neighborhood
% raise (optional) if set to true (the default), an
% error is thrown if nbrhood is not kosher
% 'show_warning',w If true (the default), then a warning is shown
% if nbrhood has no origin
%
% Output:
% is_ok true if nbrhood is kosher, false otherwise
%
%
% Examples:
% ds=cosmo_synthetic_dataset();
% nbrhood=cosmo_spherical_neighborhood(ds,'radius',1,'progress',false);
% cosmo_check_neighborhood(nbrhood)
% %|| true
% %
% cosmo_check_neighborhood(2)
% %|| error('neighborhood is not a struct')
% %
% % error can be silenced
% cosmo_check_neighborhood(2,false)
% %|| false
% %
% fa=nbrhood.fa;
% nbrhood=rmfield(nbrhood,'fa');
% cosmo_check_neighborhood(nbrhood)
% %|| error('field ''fa'' missing in neighborhood')
% %
% nbrhood.fa=fa;
% nbrhood.neighbors{2}=-1;
% cosmo_check_neighborhood(nbrhood)
% %|| error('.neighbors{2} is not a row vector with integers')
% %
% nbrhood.neighbors{2}=[1];
% nbrhood.fa.chan=[3 2 1];
% cosmo_check_neighborhood(nbrhood)
% %|| error('fa.chan has 3 values in dimension 2, expected 6')
%
% See also: cosmo_spherical_neighborhood, surfing_interval_neighborhood
% cosmo_surficial_neighborhood, cosmo_meeg_chan_neighborhood
%
% # For CoSMoMVPA's copyright information and license terms, #
% # see the COPYING file distributed with CoSMoMVPA. #