Class FloatSubject
- java.lang.Object
-
- com.google.common.truth.Subject
-
- com.google.common.truth.ComparableSubject<java.lang.Float>
-
- com.google.common.truth.FloatSubject
-
public final class FloatSubject extends ComparableSubject<java.lang.Float>
Propositions forFloatsubjects.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFloatSubject.TolerantFloatComparisonA partially specified check about an approximate relationship to afloatsubject using a tolerance.-
Nested classes/interfaces inherited from class com.google.common.truth.Subject
Subject.EqualityCheck, Subject.Factory<SubjectT extends Subject,ActualT>
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Floatactualprivate DoubleSubjectasDoubleprivate static intNEG_ZERO_BITS
-
Constructor Summary
Constructors Constructor Description FloatSubject(FailureMetadata metadata, java.lang.Float actual)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description (package private) static voidcheckTolerance(float tolerance)Ensures that the given tolerance is a non-negative finite value, i.e.voidisAtLeast(int other)Checks that the subject is greater than or equal toother.voidisAtMost(int other)Checks that the subject is less than or equal toother.voidisEqualTo(java.lang.Object other)Asserts that the subject is exactly equal to the given value, with equality defined as byFloat#equals.voidisEquivalentAccordingToCompareTo(java.lang.Float other)Deprecated.UseisWithin(float)orisEqualTo(java.lang.Object)instead (see documentation for advice).voidisFinite()Asserts that the subject is finite, i.e.voidisGreaterThan(int other)Checks that the subject is greater thanother.voidisLessThan(int other)Checks that the subject is less thanother.voidisNaN()Asserts that the subject isFloat.NaN.voidisNegativeInfinity()Asserts that the subject isFloat.NEGATIVE_INFINITY.voidisNonZero()Asserts that the subject is a non-null value other than zero (i.e.voidisNotEqualTo(java.lang.Object other)Asserts that the subject is not exactly equal to the given value, with equality defined as byFloat#equals.voidisNotNaN()Asserts that the subject is a non-null value other thanFloat.NaN(but it may beFloat.POSITIVE_INFINITYorFloat.NEGATIVE_INFINITY).FloatSubject.TolerantFloatComparisonisNotWithin(float tolerance)Prepares for a check that the subject is a finite number not within the given tolerance of an expected value that will be provided in the next call in the fluent chain.voidisPositiveInfinity()Asserts that the subject isFloat.POSITIVE_INFINITY.FloatSubject.TolerantFloatComparisonisWithin(float tolerance)Prepares for a check that the subject is a finite number within the given tolerance of an expected value that will be provided in the next call in the fluent chain.voidisZero()Asserts that the subject is zero (i.e.-
Methods inherited from class com.google.common.truth.ComparableSubject
isAtLeast, isAtMost, isGreaterThan, isIn, isLessThan, isNotIn
-
Methods inherited from class com.google.common.truth.Subject
actual, actualCustomStringRepresentation, actualCustomStringRepresentationForPackageMembersToCall, butWas, check, check, checkNoNeedToDisplayBothValues, equals, fail, fail, fail, failEqualityCheckForEqualsWithoutDescription, failWithActual, failWithActual, failWithActual, failWithActual, failWithBadResults, failWithCustomSubject, failWithoutActual, failWithoutActual, failWithoutActual, failWithoutActual, failWithoutSubject, hashCode, ignoreCheck, isAnyOf, isIn, isInstanceOf, isNoneOf, isNotIn, isNotInstanceOf, isNotNull, isNotSameInstanceAs, isNull, isSameInstanceAs, toString, typeDescription
-
-
-
-
Field Detail
-
NEG_ZERO_BITS
private static final int NEG_ZERO_BITS
-
actual
private final java.lang.Float actual
-
asDouble
private final DoubleSubject asDouble
-
-
Constructor Detail
-
FloatSubject
FloatSubject(FailureMetadata metadata, java.lang.Float actual)
-
-
Method Detail
-
isWithin
public FloatSubject.TolerantFloatComparison isWithin(float tolerance)
Prepares for a check that the subject is a finite number within the given tolerance of an expected value that will be provided in the next call in the fluent chain.The check will fail if either the subject or the object is
Float.POSITIVE_INFINITY,Float.NEGATIVE_INFINITY, orFloat.NaN. To check for those values, useisPositiveInfinity(),isNegativeInfinity(),isNaN(), or (with more generality)isEqualTo(java.lang.Object).The check will pass if both values are zero, even if one is
0.0fand the other is-0.0f. Use#isEqualToto assert that a value is exactly0.0for that it is exactly-0.0f.You can use a tolerance of
0.0fto assert the exact equality of finite floats, but oftenisEqualTo(java.lang.Object)is preferable (note the different behaviours around non-finite values and-0.0f). See the documentation onisEqualTo(java.lang.Object)for advice on when exact equality assertions are appropriate.- Parameters:
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. notFloat.NaN,Float.POSITIVE_INFINITY, or negative, including-0.0f
-
isNotWithin
public FloatSubject.TolerantFloatComparison isNotWithin(float tolerance)
Prepares for a check that the subject is a finite number not within the given tolerance of an expected value that will be provided in the next call in the fluent chain.The check will fail if either the subject or the object is
Float.POSITIVE_INFINITY,Float.NEGATIVE_INFINITY, orFloat.NaN. SeeisFinite(),isNotNaN(), orisNotEqualTo(java.lang.Object)for checks with other behaviours.The check will fail if both values are zero, even if one is
0.0fand the other is-0.0f. Use#isNotEqualTofor a test which fails for a value of exactly zero with one sign but passes for zero with the opposite sign.You can use a tolerance of
0.0fto assert the exact non-equality of finite floats, but sometimesisNotEqualTo(java.lang.Object)is preferable (note the different behaviours around non-finite values and-0.0f).- Parameters:
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. notFloat.NaN,Float.POSITIVE_INFINITY, or negative, including-0.0f
-
isEqualTo
public final void isEqualTo(java.lang.Object other)
Asserts that the subject is exactly equal to the given value, with equality defined as byFloat#equals. This method is not recommended when the code under test is doing any kind of arithmetic: useisWithin(float)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) + cwitha + (b + c), and that unlessstrictfpis in force even the result of(a + b) + cis 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.Note: The assertion
isEqualTo(0.0f)fails for an input of-0.0f, and vice versa. For an assertion that passes for either0.0for-0.0f, useisZero().
-
isNotEqualTo
public final void isNotEqualTo(java.lang.Object other)
Asserts that the subject is not exactly equal to the given value, with equality defined as byFloat#equals. SeeisEqualTo(java.lang.Object)for advice on when exact equality is recommended. UseisNotWithin(float)for an assertion with a tolerance.Note: The assertion
isNotEqualTo(0.0f)passes for-0.0f, and vice versa. For an assertion that fails for either0.0for-0.0f, useisNonZero().- Overrides:
isNotEqualToin classSubject
-
isEquivalentAccordingToCompareTo
@Deprecated public final void isEquivalentAccordingToCompareTo(java.lang.Float other)
Deprecated.UseisWithin(float)orisEqualTo(java.lang.Object)instead (see documentation for advice).Description copied from class:ComparableSubjectChecks that the subject is equivalent tootheraccording toComparable.compareTo(T), (i.e., checks thata.comparesTo(b) == 0).Note: Do not use this method for checking object equality. Instead, use
Subject.isEqualTo(Object).- Overrides:
isEquivalentAccordingToCompareToin classComparableSubject<java.lang.Float>
-
checkTolerance
static void checkTolerance(float tolerance)
Ensures that the given tolerance is a non-negative finite value, i.e. notFloat.NaN,Float.POSITIVE_INFINITY, or negative, including-0.0f.
-
isZero
public final void isZero()
Asserts that the subject is zero (i.e. it is either0.0for-0.0f).
-
isNonZero
public final void isNonZero()
Asserts that the subject is a non-null value other than zero (i.e. it is not0.0f,-0.0fornull).
-
isPositiveInfinity
public final void isPositiveInfinity()
Asserts that the subject isFloat.POSITIVE_INFINITY.
-
isNegativeInfinity
public final void isNegativeInfinity()
Asserts that the subject isFloat.NEGATIVE_INFINITY.
-
isNaN
public final void isNaN()
Asserts that the subject isFloat.NaN.
-
isFinite
public final void isFinite()
Asserts that the subject is finite, i.e. notFloat.POSITIVE_INFINITY,Float.NEGATIVE_INFINITY, orFloat.NaN.
-
isNotNaN
public final void isNotNaN()
Asserts that the subject is a non-null value other thanFloat.NaN(but it may beFloat.POSITIVE_INFINITYorFloat.NEGATIVE_INFINITY).
-
isGreaterThan
public final void isGreaterThan(int other)
Checks that the subject is greater thanother.To check that the subject is greater than or equal to
other, useisAtLeast(int).
-
isLessThan
public final void isLessThan(int other)
Checks that the subject is less thanother.To check that the subject is less than or equal to
other, useisAtMost(int).
-
isAtMost
public final void isAtMost(int other)
Checks that the subject is less than or equal toother.To check that the subject is strictly less than
other, useisLessThan(int).
-
isAtLeast
public final void isAtLeast(int other)
Checks that the subject is greater than or equal toother.To check that the subject is strictly greater than
other, useisGreaterThan(int).
-
-