Package com.streambase.sb.unittest
Class FieldBasedTupleComparator
java.lang.Object
com.streambase.sb.unittest.FieldBasedTupleComparator
- All Implemented Interfaces:
TupleComparator
A
TupleComparator that compares tuples in a naive field-by-field manner.
Comparison of individual field types can be controlled using FieldBasedTupleComparator.CompareFunctors.
A subset of the fields for a tuple can by explicitly specifying the field names.
DEFAULT_COMPARATOR provides a reasonable default comparison of tuples.
DEFAULT_COMPARE_REGISTRY provides a filled in registry of default FieldBasedTupleComparator.CompareFunctors.
- Since:
- 6.6
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA strategy object for handling comparisons of specific field types.static classCompare double values using a ratio test and a tolerance.static classIgnore timestamp compare functorstatic classList compare functorstatic classSimple object compare functorstatic classCheck if the second argument matches the regex defined for the first argument.static classTuple compare functor -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final FieldBasedTupleComparatorDefault comparatorstatic final com.streambase.sb.DataType.Registry<FieldBasedTupleComparator.CompareFunctor> Default compare functor registrystatic final Map<DataType, FieldBasedTupleComparator.CompareFunctor> Default functor data type to functor mapstatic final FieldBasedTupleComparatorIgnore timestamp comparatorstatic final FieldBasedTupleComparatorRegular expression comparator -
Constructor Summary
ConstructorsConstructorDescriptionFieldBasedTupleComparator(com.streambase.sb.DataType.Registry<FieldBasedTupleComparator.CompareFunctor> comparators, String... fields) ConstructorFieldBasedTupleComparator(FieldBasedTupleComparator baseComparator, String... fields) Constructor -
Method Summary
Modifier and TypeMethodDescriptionbooleanCompare two tuples.booleancompareValues(CompleteDataType cdt, Object expected, Object actual) Compare two values withCompleteDataTypecdt.Convert the provided Tuple into a string appropriate for error messages.
-
Field Details
-
DEFAULT_FUNCTOR_MAP
Default functor data type to functor map -
DEFAULT_COMPARE_REGISTRY
public static final com.streambase.sb.DataType.Registry<FieldBasedTupleComparator.CompareFunctor> DEFAULT_COMPARE_REGISTRYDefault compare functor registry -
DEFAULT_COMPARATOR
Default comparator -
REGEX_COMPARATOR
Regular expression comparator -
IGNORE_TIMESTAMP_COMPARATOR
Ignore timestamp comparator
-
-
Constructor Details
-
FieldBasedTupleComparator
public FieldBasedTupleComparator(com.streambase.sb.DataType.Registry<FieldBasedTupleComparator.CompareFunctor> comparators, String... fields) throws StreamBaseException Constructor- Parameters:
comparators- comparatorsfields- fields to compare- Throws:
StreamBaseException- initialization error
-
FieldBasedTupleComparator
public FieldBasedTupleComparator(FieldBasedTupleComparator baseComparator, String... fields) throws StreamBaseException Constructor- Parameters:
baseComparator- base comparatorfields- fields to compare- Throws:
StreamBaseException- initialization error
-
-
Method Details
-
compare
Description copied from interface:TupleComparatorCompare two tuples.- Specified by:
comparein interfaceTupleComparator- Parameters:
expected- The expected valueactual- The actual value- Returns:
- true if the tuples are equal
- Throws:
StreamBaseException- error comparing tuples
-
compareValues
public boolean compareValues(CompleteDataType cdt, Object expected, Object actual) throws StreamBaseException Description copied from interface:TupleComparatorCompare two values withCompleteDataTypecdt.- Specified by:
compareValuesin interfaceTupleComparator- Parameters:
cdt- TheCompleteDataTypefor the objects being comparedexpected- The expected valueactual- The actual value- Returns:
- true if the values are equal
- Throws:
StreamBaseException- error comparing tuples
-
formatForErrorMessage
Description copied from interface:TupleComparatorConvert the provided Tuple into a string appropriate for error messages. Some comparators may wish to omit fields that are not salient to the comparison.- Specified by:
formatForErrorMessagein interfaceTupleComparator- Parameters:
t- The tuple to format- Returns:
- A human readable string.
-