UFO
ufo::test Namespace Reference

Classes

class  GaussianThinning
 
class  GeoVaLs
 
class  Locations
 
class  MetOfficeBuddyCheck
 
class  MetOfficeBuddyPairFinder
 
class  MyParameters
 
class  ObsBiasCovarianceDetails
 
class  ObsDiagnostics
 
class  ObsFilterData
 
class  ObsFilters
 
class  ObsFunction
 
class  ParallelObsDistribution
 
class  Parameters
 
class  PiecewiseLinearInterpolation
 
class  PoissonDiskThinning
 
class  ProcessWhere
 
class  ProfileConsistencyChecks
 
class  RecursiveSplitter
 
class  TemporalThinning
 
class  TestParameters
 
class  TrackCheck
 
class  TrackCheckShip
 
class  TrackCheckShipMainLoop
 
class  Variables
 

Typedefs

typedef std::pair< int, int > ObsPair
 
typedef std::set< size_t > Group
 
typedef std::set< GroupGroups
 

Functions

void testGaussianThinning (const eckit::LocalConfiguration &conf)
 
void testGeoVaLs ()
 
void testLocations ()
 
void testMetOfficeBuddyCheck (const eckit::LocalConfiguration &conf)
 
bool duplicatePairsPresent (const std::vector< ObsPair > &pairs)
 
template<typename Key , typename Value >
Value maxValue (const std::map< Key, Value > &map)
 
int maxTotalNumBuddies (const std::vector< ObsPair > &pairs)
 
int maxNumBuddiesWithSameStationId (const std::vector< ObsPair > &pairs, const std::vector< int > &stationIds)
 
void testDuplicatesAndBuddyCountConstraints (const eckit::LocalConfiguration &conf)
 
 CASE ("ufo/MetOfficeBuddyPairFinder/" "Duplicates, constraints on buddy counts, legacy pair collector")
 
std::vector< MetOfficeBuddyPairfindBuddyPairs (const MetOfficeBuddyCheckParameters &options, const std::vector< float > &latitudes, const std::vector< float > &longitudes, const std::vector< util::DateTime > &datetimes, const std::vector< float > *pressures, const std::vector< int > &stationIds, const std::vector< size_t > &validObsIds)
 
void testInvarianceToLongitude (const eckit::LocalConfiguration &conf)
 
 CASE ("ufo/TemporalThinning/Invariance to longitude, different zonal bands")
 
 CASE ("ufo/TemporalThinning/Invariance to longitude, same zonal band")
 
void findEndpoint (double startLat, double startLon, double distance, double bearing, double &endLat, double &endLon)
 
void findEndpoint (float startLat, float startLon, float distance, float bearing, float &endLat, float &endLon)
 
template<typename T >
bool contains (const std::set< T > &set, const T &element)
 
ObsPair reverse (const ObsPair &pair)
 
void testSearchRadius (const eckit::LocalConfiguration &conf)
 
 CASE ("ufo/TemporalThinning/Search radius")
 
void testObsBiasCovarianceDetails ()
 
void testObsDiagnostics ()
 
void testObsFilterData ()
 
void convertLocalObsIndicesToGlobal (const eckit::mpi::Comm &comm, std::vector< size_t > &indices)
 Convert indices of observations held by this process to global observation indices. More...
 
template<typename T >
std::vector< T > allGatherv (const eckit::mpi::Comm &comm, const std::vector< T > &v)
 Gather data from all tasks and deliver the combined data to all tasks. More...
 
template<typename Predicate >
std::vector< size_t > getObservationIndicesWhere (const eckit::mpi::Comm &comm, const ObsTraits::ObsDataVector< int > &qcFlags, const Predicate &predicate)
 
std::vector< size_t > getPassedObservationIndices (const eckit::mpi::Comm &comm, const ObsTraits::ObsDataVector< int > &qcFlags)
 
std::vector< size_t > getFailedObservationIndices (const eckit::mpi::Comm &comm, const ObsTraits::ObsDataVector< int > &qcFlags)
 
std::vector< size_t > getFlaggedObservationIndices (const eckit::mpi::Comm &comm, const ObsTraits::ObsDataVector< int > &qcFlags, int flag)
 
size_t numNonzero (const ObsTraits::ObsDataVector< int > &data)
 
size_t numEqualTo (const ObsTraits::ObsDataVector< int > &data, int value)
 
template<typename T >
void expectVariablesEqual (const ObsTraits::ObsSpace &obsspace, const ufo::Variable &referenceVariable, const ufo::Variable &testVariable)
 
void expectVariablesApproximatelyEqual (const ObsTraits::ObsSpace &obsspace, const ufo::Variable &referenceVariable, const ufo::Variable &testVariable, float absTol)
 
void testFilters ()
 
void dataVectorDiff (const ioda::ObsSpace &ospace, ioda::ObsDataVector< float > &vals, const ioda::ObsDataVector< float > &ref, std::vector< float > &rms_out)
 
void testFunction ()
 
template<typename T >
void ifTIsDoubleCastDoublesToFloats (std::vector< T > &v)
 
template<>
void ifTIsDoubleCastDoublesToFloats (std::vector< double > &v)
 
template<typename T >
void testVariable (const std::string &section)
 
 CASE ("ufo/ParallelObsDistribution/getGlobalIntVariableValues")
 
 CASE ("ufo/ParallelObsDistribution/getGlobalFloatVariableValues")
 
 CASE ("ufo/ParallelObsDistribution/getGlobalDoubleVariableValues")
 
 CASE ("ufo/ParallelObsDistribution/getGlobalDateTimeVariableValues")
 
 CASE ("ufo/ParallelObsDistribution/members")
 
template<typename ParametersType >
void doTestSerialization (const eckit::Configuration &config)
 
void testDefaultValue ()
 
void testCorrectValue ()
 
void testNoChannels ()
 
void testComplexChannels ()
 
void testMissingName ()
 
void testMisspelledProperty ()
 
void testSerializationWithChannels ()
 
void testSerializationWithoutChannels ()
 
 CASE ("ufo/PiecewiseLinearInterpolation/atInterpolationPoints")
 
 CASE ("ufo/PiecewiseLinearInterpolation/betweenInterpolationPoints")
 
 CASE ("ufo/PiecewiseLinearInterpolation/outsideInterpolationPoints")
 
 CASE ("ufo/PiecewiseLinearInterpolation/singleInterpolationPoint")
 
 CASE ("ufo/PiecewiseLinearInterpolation/noInterpolationPoints")
 
 CASE ("ufo/PiecewiseLinearInterpolation/differentNumberOfAbscissasAndOrdinates")
 
void testPoissonDiskThinning (const eckit::LocalConfiguration &conf, bool expectValidationError=false)
 
 CASE ("ufo/PoissonDiskThinning/No thinning")
 
 CASE ("ufo/PoissonDiskThinning/" "Horizontal thinning, min spacing smaller than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Horizontal thinning, min spacing larger than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Vertical thinning, min spacing smaller than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Vertical thinning, min spacing larger than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/Vertical thinning, where clause")
 
 CASE ("ufo/PoissonDiskThinning/" "Time thinning, min spacing equal to nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Time thinning, min spacing larger than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Horizontal and vertical thinning, min spacing larger than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Horizontal and time thinning, min spacing larger than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Vertical and time thinning, min spacing larger than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/" "Horizontal, vertical and time thinning, min spacing larger than nearest neighbor spacing")
 
 CASE ("ufo/PoissonDiskThinning/Priorities")
 
 CASE ("ufo/PoissonDiskThinning/Categories")
 
 CASE ("ufo/PoissonDiskThinning/Variable min spacings")
 
 CASE ("ufo/PoissonDiskThinning/Variable min spacings, shuffling")
 
 CASE ("ufo/PoissonDiskThinning/Cylindrical exclusion volumes")
 
 CASE ("ufo/PoissonDiskThinning/Ellipsoidal exclusion volumes")
 
 CASE ("ufo/PoissonDiskThinning/Incorrectly ordered min horizontal spacings")
 
 CASE ("ufo/PoissonDiskThinning/Incorrectly ordered min vertical spacings")
 
 CASE ("ufo/PoissonDiskThinning/Incorrectly ordered min time spacings")
 
void testProcessWhere (const eckit::LocalConfiguration &conf, bool is_in_usererror=false)
 
void testProfileConsistencyChecks (const eckit::LocalConfiguration &conf)
 
Groups getGroups (const RecursiveSplitter &splitter)
 
Groups getMultiElementGroups (const RecursiveSplitter &splitter)
 
 CASE ("ufo/RecursiveSplitter/ZeroIds")
 
 CASE ("ufo/RecursiveSplitter/OneId")
 
 CASE ("ufo/RecursiveSplitter/TenIds")
 
 CASE ("ufo/RecursiveSplitter/IntCategories")
 
 CASE ("ufo/RecursiveSplitter/StringCategories")
 
void testTemporalThinning (const eckit::LocalConfiguration &conf)
 
void testTrackCheck (const eckit::LocalConfiguration &conf)
 
const ufo::TrackCheckShipDiagnostics setupRunFilter (const eckit::LocalConfiguration &conf)
 
void testTrackCheckShipInitialCalculations (const eckit::LocalConfiguration &conf)
 
void testEarlyBreakCondition (const eckit::LocalConfiguration &conf)
 
void testDeferSimultaneous (const eckit::LocalConfiguration &conf)
 
void testFirstRejectionSimultaneousIncluded (const eckit::LocalConfiguration &conf)
 
void testVariable ()
 
void testConstructor ()
 
bool hasVariable (const Variables &vars, const Variable &var)
 
void testAllFromGroup ()
 
void testHasGroup ()
 

Variables

const bool validationSupported = oops::Parameters::isValidationSupported()
 

Typedef Documentation

◆ Group

typedef std::set<size_t> ufo::test::Group

Definition at line 25 of file test/ufo/RecursiveSplitter.h.

◆ Groups

typedef std::set<Group> ufo::test::Groups

Definition at line 26 of file test/ufo/RecursiveSplitter.h.

◆ ObsPair

typedef std::pair<int, int> ufo::test::ObsPair

Definition at line 35 of file test/ufo/MetOfficeBuddyPairFinder.h.

Function Documentation

◆ allGatherv()

template<typename T >
std::vector<T> ufo::test::allGatherv ( const eckit::mpi::Comm &  comm,
const std::vector< T > &  v 
)

Gather data from all tasks and deliver the combined data to all tasks.

Returns
A vector that contains the elements of v from process 0 followed by the elements of v from process 1 etc.

Definition at line 86 of file ObsFilters.h.

Here is the caller graph for this function:

◆ CASE() [1/41]

ufo::test::CASE ( "ufo/MetOfficeBuddyPairFinder/" "  Duplicates,
constraints on buddy  counts,
legacy pair collector"   
)

Definition at line 171 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CASE() [2/41]

ufo::test::CASE ( "ufo/ParallelObsDistribution/getGlobalDateTimeVariableValues"  )

Definition at line 100 of file test/ufo/ParallelObsDistribution.h.

◆ CASE() [3/41]

ufo::test::CASE ( "ufo/ParallelObsDistribution/getGlobalDoubleVariableValues"  )

Definition at line 96 of file test/ufo/ParallelObsDistribution.h.

◆ CASE() [4/41]

ufo::test::CASE ( "ufo/ParallelObsDistribution/getGlobalFloatVariableValues"  )

Definition at line 92 of file test/ufo/ParallelObsDistribution.h.

◆ CASE() [5/41]

ufo::test::CASE ( "ufo/ParallelObsDistribution/getGlobalIntVariableValues"  )

Definition at line 88 of file test/ufo/ParallelObsDistribution.h.

◆ CASE() [6/41]

ufo::test::CASE ( "ufo/ParallelObsDistribution/members"  )

Definition at line 104 of file test/ufo/ParallelObsDistribution.h.

◆ CASE() [7/41]

ufo::test::CASE ( "ufo/PiecewiseLinearInterpolation/atInterpolationPoints"  )

Definition at line 24 of file test/ufo/PiecewiseLinearInterpolation.h.

◆ CASE() [8/41]

ufo::test::CASE ( "ufo/PiecewiseLinearInterpolation/betweenInterpolationPoints"  )

Definition at line 32 of file test/ufo/PiecewiseLinearInterpolation.h.

◆ CASE() [9/41]

ufo::test::CASE ( "ufo/PiecewiseLinearInterpolation/differentNumberOfAbscissasAndOrdinates"  )

Definition at line 58 of file test/ufo/PiecewiseLinearInterpolation.h.

◆ CASE() [10/41]

ufo::test::CASE ( "ufo/PiecewiseLinearInterpolation/noInterpolationPoints"  )

Definition at line 54 of file test/ufo/PiecewiseLinearInterpolation.h.

◆ CASE() [11/41]

ufo::test::CASE ( "ufo/PiecewiseLinearInterpolation/outsideInterpolationPoints"  )

Definition at line 39 of file test/ufo/PiecewiseLinearInterpolation.h.

◆ CASE() [12/41]

ufo::test::CASE ( "ufo/PiecewiseLinearInterpolation/singleInterpolationPoint"  )

Definition at line 46 of file test/ufo/PiecewiseLinearInterpolation.h.

◆ CASE() [13/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Horizontal and time  thinning,
min spacing larger than nearest neighbor spacing"   
)

Definition at line 142 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [14/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Horizontal and vertical  thinning,
min spacing larger than nearest neighbor spacing"   
)

Definition at line 135 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [15/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Horizontal  thinning,
min spacing larger than nearest neighbor spacing"   
)

Definition at line 95 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [16/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Horizontal  thinning,
min spacing smaller than nearest neighbor spacing"   
)

Definition at line 88 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [17/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "  Horizontal,
vertical and time  thinning,
min spacing larger than nearest neighbor spacing"   
)

Definition at line 156 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [18/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Time  thinning,
min spacing equal to nearest neighbor spacing"   
)

Definition at line 121 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [19/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Time  thinning,
min spacing larger than nearest neighbor spacing"   
)

Definition at line 128 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [20/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Vertical and time  thinning,
min spacing larger than nearest neighbor spacing"   
)

Definition at line 149 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [21/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Vertical  thinning,
min spacing larger than nearest neighbor spacing"   
)

Definition at line 109 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [22/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/" "Vertical  thinning,
min spacing smaller than nearest neighbor spacing"   
)

Definition at line 102 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [23/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Categories"  )

Definition at line 168 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [24/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Cylindrical exclusion volumes"  )

Definition at line 183 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [25/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Ellipsoidal exclusion volumes"  )

Definition at line 188 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [26/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Incorrectly ordered min horizontal spacings"  )

Definition at line 193 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [27/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Incorrectly ordered min time spacings"  )

Definition at line 205 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [28/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Incorrectly ordered min vertical spacings"  )

Definition at line 199 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [29/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/No thinning"  )

Definition at line 83 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [30/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Priorities"  )

Definition at line 163 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [31/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Variable min spacings"  )

Definition at line 173 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [32/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Variable min  spacings,
shuffling"   
)

Definition at line 178 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [33/41]

ufo::test::CASE ( "ufo/PoissonDiskThinning/Vertical  thinning,
where clause"   
)

Definition at line 116 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:

◆ CASE() [34/41]

ufo::test::CASE ( "ufo/RecursiveSplitter/IntCategories"  )

Definition at line 157 of file test/ufo/RecursiveSplitter.h.

Here is the call graph for this function:

◆ CASE() [35/41]

ufo::test::CASE ( "ufo/RecursiveSplitter/OneId"  )

Definition at line 76 of file test/ufo/RecursiveSplitter.h.

Here is the call graph for this function:

◆ CASE() [36/41]

ufo::test::CASE ( "ufo/RecursiveSplitter/StringCategories"  )

Definition at line 174 of file test/ufo/RecursiveSplitter.h.

Here is the call graph for this function:

◆ CASE() [37/41]

ufo::test::CASE ( "ufo/RecursiveSplitter/TenIds"  )

Definition at line 102 of file test/ufo/RecursiveSplitter.h.

Here is the call graph for this function:

◆ CASE() [38/41]

ufo::test::CASE ( "ufo/RecursiveSplitter/ZeroIds"  )

Definition at line 50 of file test/ufo/RecursiveSplitter.h.

Here is the call graph for this function:

◆ CASE() [39/41]

ufo::test::CASE ( "ufo/TemporalThinning/Invariance to  longitude,
different zonal bands"   
)

Definition at line 245 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:

◆ CASE() [40/41]

ufo::test::CASE ( "ufo/TemporalThinning/Invariance to  longitude,
same zonal band"   
)

Definition at line 251 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:

◆ CASE() [41/41]

ufo::test::CASE ( "ufo/TemporalThinning/Search radius"  )

Definition at line 344 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:

◆ contains()

template<typename T >
bool ufo::test::contains ( const std::set< T > &  set,
const T &  element 
)

Definition at line 282 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the caller graph for this function:

◆ convertLocalObsIndicesToGlobal()

void ufo::test::convertLocalObsIndicesToGlobal ( const eckit::mpi::Comm &  comm,
std::vector< size_t > &  indices 
)

Convert indices of observations held by this process to global observation indices.

It is assumed that observations are distributed to processes in a round-robin fashion. For example, 8 observations are mapped to 3 processes in the following way:

Global obs. index Process index Local obs. index
0 0 0
1 1 0
2 2 0
3 0 1
4 1 1
5 2 1
6 0 2
7 1 2

Definition at line 70 of file ObsFilters.h.

Here is the caller graph for this function:

◆ dataVectorDiff()

void ufo::test::dataVectorDiff ( const ioda::ObsSpace &  ospace,
ioda::ObsDataVector< float > &  vals,
const ioda::ObsDataVector< float > &  ref,
std::vector< float > &  rms_out 
)

Loop through variables and calculate rms for each variable

Definition at line 36 of file test/ufo/ObsFunction.h.

Here is the caller graph for this function:

◆ doTestSerialization()

template<typename ParametersType >
void ufo::test::doTestSerialization ( const eckit::Configuration &  config)

Definition at line 37 of file Parameters.h.

◆ duplicatePairsPresent()

bool ufo::test::duplicatePairsPresent ( const std::vector< ObsPair > &  pairs)

Definition at line 37 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the caller graph for this function:

◆ expectVariablesApproximatelyEqual()

void ufo::test::expectVariablesApproximatelyEqual ( const ObsTraits::ObsSpace obsspace,
const ufo::Variable referenceVariable,
const ufo::Variable testVariable,
float  absTol 
)

Definition at line 210 of file ObsFilters.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ expectVariablesEqual()

template<typename T >
void ufo::test::expectVariablesEqual ( const ObsTraits::ObsSpace obsspace,
const ufo::Variable referenceVariable,
const ufo::Variable testVariable 
)

Definition at line 197 of file ObsFilters.h.

Here is the call graph for this function:

◆ findBuddyPairs()

std::vector<MetOfficeBuddyPair> ufo::test::findBuddyPairs ( const MetOfficeBuddyCheckParameters options,
const std::vector< float > &  latitudes,
const std::vector< float > &  longitudes,
const std::vector< util::DateTime > &  datetimes,
const std::vector< float > *  pressures,
const std::vector< int > &  stationIds,
const std::vector< size_t > &  validObsIds 
)

Definition at line 179 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the caller graph for this function:

◆ findEndpoint() [1/2]

void ufo::test::findEndpoint ( double  startLat,
double  startLon,
double  distance,
double  bearing,
double &  endLat,
double &  endLon 
)

Definition at line 257 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findEndpoint() [2/2]

void ufo::test::findEndpoint ( float  startLat,
float  startLon,
float  distance,
float  bearing,
float &  endLat,
float &  endLon 
)

Definition at line 272 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:

◆ getFailedObservationIndices()

std::vector<size_t> ufo::test::getFailedObservationIndices ( const eckit::mpi::Comm &  comm,
const ObsTraits::ObsDataVector< int > &  qcFlags 
)

Return the indices of observations that have failed quality control in at least one variable.

Definition at line 145 of file ObsFilters.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFlaggedObservationIndices()

std::vector<size_t> ufo::test::getFlaggedObservationIndices ( const eckit::mpi::Comm &  comm,
const ObsTraits::ObsDataVector< int > &  qcFlags,
int  flag 
)

Return the indices of observations whose quality control flag is set to flag in at least one variable.

Definition at line 156 of file ObsFilters.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getGroups()

Groups ufo::test::getGroups ( const RecursiveSplitter splitter)

Definition at line 28 of file test/ufo/RecursiveSplitter.h.

Here is the caller graph for this function:

◆ getMultiElementGroups()

Groups ufo::test::getMultiElementGroups ( const RecursiveSplitter splitter)

Definition at line 39 of file test/ufo/RecursiveSplitter.h.

Here is the caller graph for this function:

◆ getObservationIndicesWhere()

template<typename Predicate >
std::vector<size_t> ufo::test::getObservationIndicesWhere ( const eckit::mpi::Comm &  comm,
const ObsTraits::ObsDataVector< int > &  qcFlags,
const Predicate &  predicate 
)

Return the indices of observations whose quality control flags satisfy the predicate in at least one variable.

Parameters
qcFlagsVector of quality control flags for all observations.
predicateA function object taking an argument of type int and returning bool.
commThe MPI communicator used by the ObsSpace.

Definition at line 104 of file ObsFilters.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPassedObservationIndices()

std::vector<size_t> ufo::test::getPassedObservationIndices ( const eckit::mpi::Comm &  comm,
const ObsTraits::ObsDataVector< int > &  qcFlags 
)

Return the indices of observations that have passed quality control in at least one variable.

Definition at line 134 of file ObsFilters.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasVariable()

bool ufo::test::hasVariable ( const Variables vars,
const Variable var 
)

Definition at line 71 of file test/ufo/Variables.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ifTIsDoubleCastDoublesToFloats() [1/2]

template<>
void ufo::test::ifTIsDoubleCastDoublesToFloats ( std::vector< double > &  v)

Definition at line 57 of file test/ufo/ParallelObsDistribution.h.

◆ ifTIsDoubleCastDoublesToFloats() [2/2]

template<typename T >
void ufo::test::ifTIsDoubleCastDoublesToFloats ( std::vector< T > &  v)

Definition at line 53 of file test/ufo/ParallelObsDistribution.h.

Here is the caller graph for this function:

◆ maxNumBuddiesWithSameStationId()

int ufo::test::maxNumBuddiesWithSameStationId ( const std::vector< ObsPair > &  pairs,
const std::vector< int > &  stationIds 
)

Definition at line 85 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ maxTotalNumBuddies()

int ufo::test::maxTotalNumBuddies ( const std::vector< ObsPair > &  pairs)

Definition at line 78 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ maxValue()

template<typename Key , typename Value >
Value ufo::test::maxValue ( const std::map< Key, Value > &  map)

Definition at line 67 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the caller graph for this function:

◆ numEqualTo()

size_t ufo::test::numEqualTo ( const ObsTraits::ObsDataVector< int > &  data,
int  value 
)

Return the number of elements of data with at least one component equal to value.

Definition at line 183 of file ObsFilters.h.

Here is the caller graph for this function:

◆ numNonzero()

size_t ufo::test::numNonzero ( const ObsTraits::ObsDataVector< int > &  data)

Return the number of elements of data with at least one nonzero component.

Definition at line 167 of file ObsFilters.h.

Here is the caller graph for this function:

◆ reverse()

ObsPair ufo::test::reverse ( const ObsPair pair)

Definition at line 286 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the caller graph for this function:

◆ setupRunFilter()

const ufo::TrackCheckShipDiagnostics ufo::test::setupRunFilter ( const eckit::LocalConfiguration &  conf)

Definition at line 34 of file test/ufo/TrackCheckShip.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testAllFromGroup()

void ufo::test::testAllFromGroup ( )

Definition at line 83 of file test/ufo/Variables.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testComplexChannels()

void ufo::test::testComplexChannels ( )

Definition at line 102 of file Parameters.h.

Here is the caller graph for this function:

◆ testConstructor()

void ufo::test::testConstructor ( )

Definition at line 50 of file test/ufo/Variables.h.

Here is the caller graph for this function:

◆ testCorrectValue()

void ufo::test::testCorrectValue ( )

Definition at line 78 of file Parameters.h.

Here is the caller graph for this function:

◆ testDefaultValue()

void ufo::test::testDefaultValue ( )

Definition at line 65 of file Parameters.h.

Here is the caller graph for this function:

◆ testDeferSimultaneous()

void ufo::test::testDeferSimultaneous ( const eckit::LocalConfiguration &  conf)

Definition at line 137 of file test/ufo/TrackCheckShip.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testDuplicatesAndBuddyCountConstraints()

void ufo::test::testDuplicatesAndBuddyCountConstraints ( const eckit::LocalConfiguration &  conf)

Definition at line 94 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testEarlyBreakCondition()

void ufo::test::testEarlyBreakCondition ( const eckit::LocalConfiguration &  conf)

Definition at line 120 of file test/ufo/TrackCheckShip.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testFilters()

void ufo::test::testFilters ( )

init QC and error

call priorFilter and postFilter if hofx is available

read GeoVaLs from file if required

read H(x) and ObsDiags from file

read GeoVaLs, compute H(x) and ObsDiags

Only call priorFilter

no need to run priorFilter or postFilter

Definition at line 224 of file ObsFilters.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testFirstRejectionSimultaneousIncluded()

void ufo::test::testFirstRejectionSimultaneousIncluded ( const eckit::LocalConfiguration &  conf)

Definition at line 33 of file TrackCheckShipMainLoop.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testFunction()

void ufo::test::testFunction ( )

Setup ObsSpace

Setup ObsFilterData

Get function name and which group to use for H(x)

Setup function

Setup GeoVaLs

Setup ObsDiags

Get output variable names

Compute function result

Compute function result through ObsFilterData

Read reference values from ObsSpace

Calculate rms(f(x) - ref) and compare to tolerance

Definition at line 56 of file test/ufo/ObsFunction.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testGaussianThinning()

void ufo::test::testGaussianThinning ( const eckit::LocalConfiguration &  conf)

Definition at line 32 of file GaussianThinning.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testGeoVaLs()

void ufo::test::testGeoVaLs ( )

Setup ObsSpace

Setup GeoVaLs

Check that GeoVaLs default constructor works

Check that GeoVaLs constructor to create a GeoVaLs with one location works

Check that GeoVaLs merge followed by a split gives back the original geovals

Check that GeoVaLs & operator *= (const std::vector<float>);

Definition at line 37 of file test/ufo/GeoVaLs.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testHasGroup()

void ufo::test::testHasGroup ( )

Definition at line 102 of file test/ufo/Variables.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testInvarianceToLongitude()

void ufo::test::testInvarianceToLongitude ( const eckit::LocalConfiguration &  conf)

Definition at line 191 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testLocations()

void ufo::test::testLocations ( )

Definition at line 32 of file test/ufo/Locations.h.

Here is the caller graph for this function:

◆ testMetOfficeBuddyCheck()

void ufo::test::testMetOfficeBuddyCheck ( const eckit::LocalConfiguration &  conf)

Definition at line 35 of file test/ufo/MetOfficeBuddyCheck.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testMissingName()

void ufo::test::testMissingName ( )

Definition at line 115 of file Parameters.h.

Here is the caller graph for this function:

◆ testMisspelledProperty()

void ufo::test::testMisspelledProperty ( )

Definition at line 123 of file Parameters.h.

Here is the caller graph for this function:

◆ testNoChannels()

void ufo::test::testNoChannels ( )

Definition at line 90 of file Parameters.h.

Here is the caller graph for this function:

◆ testObsBiasCovarianceDetails()

void ufo::test::testObsBiasCovarianceDetails ( )

Definition at line 33 of file ObsBiasCovarianceDetails.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testObsDiagnostics()

void ufo::test::testObsDiagnostics ( )

Definition at line 36 of file test/ufo/ObsDiagnostics.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testObsFilterData()

void ufo::test::testObsFilterData ( )

Setup ObsSpace

Setup GeoVaLs

Setup ObsDiags

Setup H(x)

Setup ObsFilterData and test nlocs

Check that has(), get() and dtype() works on ObsSpace:

Check that has(), get() and dtype() work on integer variables in ObsSpace:

Check that get() works on string variables in ObsSpace:

Check that get() works on datetime variables in ObsSpace:

Check that associate(), has(), get() and dtype() work on ObsVector: H(x) not associated yet The important aspect of dtype handling here is it not being in ObsSpace so we needn't test for other containers.

H(x) associated now

Check that associate(), has() and get() work on GeoVaLs: GeoVaLs not associated yet

GeoVaLs associated now

nlevs == 1: 2D geovals, could be retrieved with get(var)

otherwise need get(var, level) to retrieve

Check that associate(), has() and get() work on ObsDiags: ObsDiags not associated yet

ObsDiags associated now

nlevs == 1: 2D obsdiags, could be retrieved with get(var)

otherwise need get(var, level) to retrieve

Definition at line 34 of file test/ufo/ObsFilterData.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testPoissonDiskThinning()

void ufo::test::testPoissonDiskThinning ( const eckit::LocalConfiguration &  conf,
bool  expectValidationError = false 
)

Definition at line 30 of file test/ufo/PoissonDiskThinning.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testProcessWhere()

void ufo::test::testProcessWhere ( const eckit::LocalConfiguration &  conf,
bool  is_in_usererror = false 
)

Definition at line 33 of file ProcessWhere.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testProfileConsistencyChecks()

void ufo::test::testProfileConsistencyChecks ( const eckit::LocalConfiguration &  conf)

Definition at line 47 of file test/ufo/ProfileConsistencyChecks.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testSearchRadius()

void ufo::test::testSearchRadius ( const eckit::LocalConfiguration &  conf)

Definition at line 290 of file test/ufo/MetOfficeBuddyPairFinder.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testSerializationWithChannels()

void ufo::test::testSerializationWithChannels ( )

Definition at line 130 of file Parameters.h.

Here is the caller graph for this function:

◆ testSerializationWithoutChannels()

void ufo::test::testSerializationWithoutChannels ( )

Definition at line 136 of file Parameters.h.

Here is the caller graph for this function:

◆ testTemporalThinning()

void ufo::test::testTemporalThinning ( const eckit::LocalConfiguration &  conf)

Definition at line 32 of file test/ufo/TemporalThinning.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testTrackCheck()

void ufo::test::testTrackCheck ( const eckit::LocalConfiguration &  conf)

Definition at line 32 of file test/ufo/TrackCheck.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testTrackCheckShipInitialCalculations()

void ufo::test::testTrackCheckShipInitialCalculations ( const eckit::LocalConfiguration &  conf)

Definition at line 57 of file test/ufo/TrackCheckShip.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ testVariable() [1/2]

void ufo::test::testVariable ( )

Definition at line 31 of file test/ufo/Variables.h.

Here is the call graph for this function:

◆ testVariable() [2/2]

template<typename T >
void ufo::test::testVariable ( const std::string &  section)

Definition at line 63 of file test/ufo/ParallelObsDistribution.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ validationSupported

const bool ufo::test::validationSupported = oops::Parameters::isValidationSupported()

Definition at line 28 of file Parameters.h.