public final class PrimitiveDoubleArraySubject extends Subject<S,T>
double[]
.Modifier and Type | Class and Description |
---|---|
static class |
PrimitiveDoubleArraySubject.DoubleArrayAsIterable
A partially specified check for doing assertions on the array similar to the assertions
supported for
Iterable subjects, in which the elements of the array under test are
compared to expected elements using either exact or tolerant double equality: see usingExactEquality() and usingTolerance(double) . |
static class |
PrimitiveDoubleArraySubject.TolerantPrimitiveDoubleArrayComparison
A partially specified check about an approximate relationship to a
double[] subject
using a tolerance. |
Modifier and Type | Method and Description |
---|---|
void |
hasLength(int length)
Fails if the array does not have the given length.
|
PrimitiveDoubleArraySubject.TolerantPrimitiveDoubleArrayComparison |
hasValuesNotWithin(double tolerance)
Deprecated.
Write a for loop over the values looking for mismatches (see this implementation
for an example)
|
PrimitiveDoubleArraySubject.TolerantPrimitiveDoubleArrayComparison |
hasValuesWithin(double tolerance)
Deprecated.
Use
usingTolerance(double) , e.g. assertThat(doubleArray).usingTolerance(1e-5).containsExactly(1.2, 3.4, 5.6).inOrder(); |
void |
isEmpty()
Fails if the array is not empty (i.e.
|
void |
isEqualTo(Object expected)
A check that the actual array and
expected are arrays of the same length and type,
containing elements such that each element in expected is equal to each element in the
actual array, and in the same position, with element equality defined the same way that Arrays.equals(double[], double[]) and Double.equals(Object) define it (which is
different to the way that the == operator on primitive double defines it). |
void |
isNotEmpty()
Fails if the array is empty (i.e.
|
void |
isNotEqualTo(Object expected)
A check that the actual array and
expected are not arrays of the same length and type,
containing elements such that each element in expected is equal to each element in the
actual array, and in the same position, with element equality defined the same way that Arrays.equals(double[], double[]) and Double.equals(Object) define it (which is
different to the way that the == operator on primitive double defines it). |
PrimitiveDoubleArraySubject.DoubleArrayAsIterable |
usingExactEquality()
Starts a method chain for a check in which the actual values (i.e.
|
PrimitiveDoubleArraySubject.DoubleArrayAsIterable |
usingTolerance(double tolerance)
Starts a method chain for a check in which the actual values (i.e.
|
actual, actualAsString, actualCustomStringRepresentation, check, check, equals, fail, fail, fail, failComparing, failComparing, failWithActual, failWithActual, failWithBadResults, failWithCustomSubject, failWithoutActual, failWithoutActual, failWithoutSubject, failWithRawMessage, failWithRawMessageAndCause, getSubject, hashCode, ignoreCheck, internalCustomName, isAnyOf, isIn, isInstanceOf, isNoneOf, isNotIn, isNotInstanceOf, isNotNull, isNotSameAs, isNull, isSameAs, named, toString
public void isEqualTo(Object expected)
expected
are arrays of the same length and type,
containing elements such that each element in expected
is equal to each element in the
actual array, and in the same position, with element equality defined the same way that Arrays.equals(double[], double[])
and Double.equals(Object)
define it (which is
different to the way that the ==
operator on primitive double
defines it). This
method is not recommended when the code under test is doing any kind of arithmetic: use
usingTolerance(double)
with a suitable tolerance in that case, e.g. assertThat(actualArray).usingTolerance(1.0e-10).containsExactly(expectedArray).inOrder()
.
(Remember that the exact result of floating point arithmetic is sensitive to apparently trivial
changes such as replacing (a + b) + c
with a + (b + c)
, and that unless strictfp
is in force even the result of (a + b) + c
is sensitive to the JVM's choice
of precision for the intermediate result.) This method is recommended when the code under test
is specified as either copying values without modification from its input or returning
well-defined literal or constant values.
Double.POSITIVE_INFINITY
, Double.NEGATIVE_INFINITY
, and
Double.NaN
to be equal to themselves (contrast with usingTolerance(0.0)
which does not).
-0.0
to be equal to 0.0
(contrast with usingTolerance(0.0)
which does).
isEqualTo
in class Subject<PrimitiveDoubleArraySubject,double[]>
public void isNotEqualTo(Object expected)
expected
are not arrays of the same length and type,
containing elements such that each element in expected
is equal to each element in the
actual array, and in the same position, with element equality defined the same way that Arrays.equals(double[], double[])
and Double.equals(Object)
define it (which is
different to the way that the ==
operator on primitive double
defines it). See
isEqualTo(Object)
for advice on when exact equality is recommended.
Double.POSITIVE_INFINITY
, Double.NEGATIVE_INFINITY
, and
Double.NaN
to be equal to themselves.
-0.0
to be equal to 0.0
.
isNotEqualTo
in class Subject<PrimitiveDoubleArraySubject,double[]>
@Deprecated public PrimitiveDoubleArraySubject.TolerantPrimitiveDoubleArrayComparison hasValuesWithin(double tolerance)
usingTolerance(double)
, e.g. assertThat(doubleArray).usingTolerance(1e-5).containsExactly(1.2, 3.4, 5.6).inOrder();
tolerance
of each other, that is assertThat(actual[i]).isWithin(tolerance).of(expected[i])
passes for all i
(see the
isWithin
assertion for doubles).
The check will fail if any value in either the subject array or the object array is Double.POSITIVE_INFINITY
, Double.NEGATIVE_INFINITY
, or Double.NaN
.
tolerance
- an inclusive upper bound on the difference between the subject and object
allowed by the check, which must be a non-negative finite value, i.e. not Double.NaN
, Double.POSITIVE_INFINITY
, or negative, including -0.0
@Deprecated public PrimitiveDoubleArraySubject.TolerantPrimitiveDoubleArrayComparison hasValuesNotWithin(double tolerance)
tolerance
of each other, that is assertThat(actual[i]).isNotWithin(tolerance).of(expected[i])
passes for at least one i
(see the isNotWithin
assertion for doubles).
In the case (b), a pair of subject and object values will not cause the test to pass if
either of them is Double.POSITIVE_INFINITY
, Double.NEGATIVE_INFINITY
, or Double.NaN
.
tolerance
- an exclusive lower bound on the difference between the subject and object
allowed by the check, which must be a non-negative finite value, i.e. not Double.NaN
, Double.POSITIVE_INFINITY
, or negative, including -0.0
public PrimitiveDoubleArraySubject.DoubleArrayAsIterable usingTolerance(double tolerance)
Correspondence
which considers
values to correspond if they are finite values within tolerance
of each other. The
check is actually executed by continuing the method chain. For example:
assertThat(actualDoubleArray).usingTolerance(1.0e-5).contains(3.14159);
-0.0
to be within any tolerance of 0.0
.
Number
instances which
will be converted to doubles, which may result in a loss of precision for some numeric
types.
NullPointerException
if any
expected Number
instance is null.
tolerance
- an inclusive upper bound on the difference between the double values of the
actual and expected numbers, which must be a non-negative finite value, i.e. not Double.NaN
, Double.POSITIVE_INFINITY
, or negative, including -0.0
public PrimitiveDoubleArraySubject.DoubleArrayAsIterable usingExactEquality()
Correspondence
which considers
values to correspond if they are exactly equal, with equality defined by Double.equals(java.lang.Object)
.
This method is not recommended when the code under test is doing any kind of arithmetic:
use usingTolerance(double)
with a suitable tolerance in that case. (Remember that the exact
result of floating point arithmetic is sensitive to apparently trivial changes such as
replacing (a + b) + c
with a + (b + c)
, and that unless strictfp
is in
force even the result of (a + b) + c
is sensitive to the JVM's choice of precision for
the intermediate result.) This method is recommended when the code under test is specified as
either copying a value without modification from its input or returning a well-defined literal
or constant value. The check is actually executed by continuing the method chain. For example:
assertThat(actualDoubleArray).usingExactEquality().contains(3.14159);
For convenience, some subsequent methods accept expected values as Number
instances.
These numbers must be either of type Double
, Float
, Integer
, or Long
, and if they are Long
then their absolute values must not exceed 2^53 which is
just over 9e15. (This restriction ensures that the expected values have exact Double
representations: using exact equality makes no sense if they do not.)
Double.POSITIVE_INFINITY
, Double.NEGATIVE_INFINITY
, and
Double.NaN
to be equal to themselves (contrast with usingTolerance(0.0)
which does not).
-0.0
to be equal to 0.0
(contrast with usingTolerance(0.0)
which does not).
NullPointerException
if any
expected Double
instance is null.
public final void isEmpty()
array.length != 0
).public final void isNotEmpty()
array.length == 0
).public final void hasLength(int length)
IllegalArgumentException
- if length < 0
Copyright © 2018. All rights reserved.