use of android.util.Rational in project platform_frameworks_base by android.
the class RangeTest method testEquals.
@SmallTest
public void testEquals() {
Range<Float> oneHalf = Range.create(1.0f, 2.0f);
Range<Float> oneHalf2 = new Range<Float>(1.0f, 2.0f);
assertEquals(oneHalf, oneHalf2);
assertHashCodeEquals(oneHalf, oneHalf2);
Range<Float> twoThirds = new Range<Float>(2.0f, 3.0f);
Range<Float> twoThirds2 = Range.create(2.0f, 3.0f);
assertEquals(twoThirds, twoThirds2);
assertHashCodeEquals(twoThirds, twoThirds2);
Range<Rational> negativeOneTenthPositiveOneTenth = new Range<Rational>(new Rational(-1, 10), new Rational(1, 10));
Range<Rational> negativeOneTenthPositiveOneTenth2 = Range.create(new Rational(-1, 10), new Rational(1, 10));
assertEquals(negativeOneTenthPositiveOneTenth, negativeOneTenthPositiveOneTenth2);
assertHashCodeEquals(negativeOneTenthPositiveOneTenth, negativeOneTenthPositiveOneTenth2);
}
use of android.util.Rational in project platform_frameworks_base by android.
the class RangeTest method testInRange.
@SmallTest
public void testInRange() {
Range<Integer> hundredOneTwo = Range.create(100, 200);
assertInRange(hundredOneTwo, 100);
assertInRange(hundredOneTwo, 200);
assertInRange(hundredOneTwo, 150);
assertOutOfRange(hundredOneTwo, 99);
assertOutOfRange(hundredOneTwo, 201);
assertOutOfRange(hundredOneTwo, 100000);
Range<Float> infinities = Range.create(Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY);
assertInRange(infinities, Float.NEGATIVE_INFINITY);
assertInRange(infinities, Float.POSITIVE_INFINITY);
assertInRange(infinities, 0.0f);
assertOutOfRange(infinities, Float.NaN);
Range<Rational> negativeOneTenthPositiveOneTenth = new Range<Rational>(new Rational(-1, 10), new Rational(1, 10));
assertInRange(negativeOneTenthPositiveOneTenth, new Rational(-1, 10));
assertInRange(negativeOneTenthPositiveOneTenth, new Rational(1, 10));
assertInRange(negativeOneTenthPositiveOneTenth, Rational.ZERO);
assertOutOfRange(negativeOneTenthPositiveOneTenth, new Rational(-100, 1));
assertOutOfRange(negativeOneTenthPositiveOneTenth, new Rational(100, 1));
}
use of android.util.Rational in project platform_frameworks_base by android.
the class RationalTest method testValueConversions.
@SmallTest
public void testValueConversions() {
// Unit, simple case
assertValueEquals(UNIT, 1.0f);
assertValueEquals(UNIT, 1.0);
assertValueEquals(UNIT, 1L);
assertValueEquals(UNIT, 1);
assertValueEquals(UNIT, (short) 1);
// Zero, simple case
assertValueEquals(ZERO, 0.0f);
assertValueEquals(ZERO, 0.0);
assertValueEquals(ZERO, 0L);
assertValueEquals(ZERO, 0);
assertValueEquals(ZERO, (short) 0);
// NaN is 0 for integers, not-a-number for floating point
assertValueEquals(NaN, Float.NaN);
assertValueEquals(NaN, Double.NaN);
assertValueEquals(NaN, 0L);
assertValueEquals(NaN, 0);
assertValueEquals(NaN, (short) 0);
// Positive infinity, saturates upwards for integers
assertValueEquals(POSITIVE_INFINITY, Float.POSITIVE_INFINITY);
assertValueEquals(POSITIVE_INFINITY, Double.POSITIVE_INFINITY);
assertValueEquals(POSITIVE_INFINITY, Long.MAX_VALUE);
assertValueEquals(POSITIVE_INFINITY, Integer.MAX_VALUE);
assertValueEquals(POSITIVE_INFINITY, (short) -1);
// Negative infinity, saturates downwards for integers
assertValueEquals(NEGATIVE_INFINITY, Float.NEGATIVE_INFINITY);
assertValueEquals(NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY);
assertValueEquals(NEGATIVE_INFINITY, Long.MIN_VALUE);
assertValueEquals(NEGATIVE_INFINITY, Integer.MIN_VALUE);
assertValueEquals(NEGATIVE_INFINITY, (short) 0);
// Normal finite values, round down for integers
final Rational oneQuarter = new Rational(1, 4);
assertValueEquals(oneQuarter, 1.0f / 4.0f);
assertValueEquals(oneQuarter, 1.0 / 4.0);
assertValueEquals(oneQuarter, 0L);
assertValueEquals(oneQuarter, 0);
assertValueEquals(oneQuarter, (short) 0);
final Rational nineFifths = new Rational(9, 5);
assertValueEquals(nineFifths, 9.0f / 5.0f);
assertValueEquals(nineFifths, 9.0 / 5.0);
assertValueEquals(nineFifths, 1L);
assertValueEquals(nineFifths, 1);
assertValueEquals(nineFifths, (short) 1);
final Rational negativeHundred = new Rational(-1000, 10);
assertValueEquals(negativeHundred, -100.f / 1.f);
assertValueEquals(negativeHundred, -100.0 / 1.0);
assertValueEquals(negativeHundred, -100L);
assertValueEquals(negativeHundred, -100);
assertValueEquals(negativeHundred, (short) -100);
// Short truncates if the result is too large
assertValueEquals(new Rational(Integer.MAX_VALUE, 1), (short) Integer.MAX_VALUE);
assertValueEquals(new Rational(0x00FFFFFF, 1), (short) 0x00FFFFFF);
assertValueEquals(new Rational(0x00FF00FF, 1), (short) 0x00FF00FF);
}
use of android.util.Rational in project platform_frameworks_base by android.
the class RationalTest method testReduction.
@SmallTest
public void testReduction() {
Rational moreComplicated = new Rational(5 * 78, 7 * 78);
assertEquals(new Rational(5, 7), moreComplicated);
assertEquals(5, moreComplicated.getNumerator());
assertEquals(7, moreComplicated.getDenominator());
Rational posInf = new Rational(5, 0);
assertEquals(1, posInf.getNumerator());
assertEquals(0, posInf.getDenominator());
assertEquals(POSITIVE_INFINITY, posInf);
Rational negInf = new Rational(-100, 0);
assertEquals(-1, negInf.getNumerator());
assertEquals(0, negInf.getDenominator());
assertEquals(NEGATIVE_INFINITY, negInf);
Rational zero = new Rational(0, -100);
assertEquals(0, zero.getNumerator());
assertEquals(1, zero.getDenominator());
assertEquals(ZERO, zero);
Rational flipSigns = new Rational(1, -1);
assertEquals(-1, flipSigns.getNumerator());
assertEquals(1, flipSigns.getDenominator());
Rational flipAndReduce = new Rational(100, -200);
assertEquals(-1, flipAndReduce.getNumerator());
assertEquals(2, flipAndReduce.getDenominator());
}
use of android.util.Rational in project platform_frameworks_base by android.
the class RationalTest method createIllegalRational.
private static Rational createIllegalRational(int numerator, int denominator) {
Rational r = new Rational(numerator, denominator);
mutateField(r, "mNumerator", numerator);
mutateField(r, "mDenominator", denominator);
return r;
}
Aggregations