Skip to content

Commit

Permalink
Further split up division tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bhall-ctre committed Jun 5, 2024
1 parent e7c4440 commit 767ad4b
Showing 1 changed file with 64 additions and 40 deletions.
104 changes: 64 additions & 40 deletions wpiunits/src/test/java/edu/wpi/first/units/MeasureTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -188,86 +188,110 @@ void testPerTimesMeasure() {

@Test
void testDivideMeasure() {
// Dimensionless divide
var m1 = Units.Meters.of(6);
var m2 = Units.Value.of(3);
var result = m1.divide(m2);
assertEquals(m1.divide(m2).magnitude(), 2);
// Fallthrough divide
var num = Units.Seconds.of(10);
var denom = Units.Amps.of(2);
var result = num.divide(denom);
assertEquals(result.magnitude(), 5);
assertEquals(result.unit(), Units.Seconds.per(Units.Amps));
}

@Test
void testDivideDimensionless() {
// Divide by dimensionless
var num = Units.Meters.of(6);
var denom = Units.Value.of(3);
var result = num.divide(denom);
assertEquals(result.magnitude(), 2);
assertEquals(result.unit(), Units.Meters);
}

@Test
void testDivideSameBaseUnit() {
// Same base unit divide
var m3 = Units.Meters.of(8);
var m4 = Units.Meters.of(4);
result = m3.divide(m4);
var num = Units.Meters.of(8);
var denom = Units.Meters.of(4);
var result = num.divide(denom);
assertEquals(result.magnitude(), 2);
assertEquals(result.unit(), Units.Value);

// Fallthrough divide
var m5 = Units.Seconds.of(10);
var m6 = Units.Amps.of(2);
result = m5.divide(m6);
assertEquals(result.magnitude(), 5);
assertEquals(result.unit(), Units.Seconds.per(Units.Amps));
}

@Test
void testDivideVelocityMeasure() {
void testDivideVelocity() {
// Velocity divide
var m1 = Units.Meters.of(6);
var m2 = Units.Meters.per(Units.Second).of(3);
var result = m1.divide(m2);
var num = Units.Meters.of(6);
var denom = Units.Meters.per(Units.Second).of(3);
var result = num.divide(denom);
assertEquals(result.magnitude(), 2);
assertEquals(result.unit(), Units.Second);
}

@Test
void testDimensionlessDivideVelocity() {
// Dimensionless divided by Velocity
var m3 = Units.Value.of(8);
var m4 = Units.Meters.per(Units.Second).of(4);
result = m3.divide(m4);
var num = Units.Value.of(8);
var denom = Units.Meters.per(Units.Second).of(4);
var result = num.divide(denom);
assertEquals(result.magnitude(), 2);
assertEquals(result.unit(), Units.Seconds.per(Units.Meter));
}

@Test
void testDivideVelocityDimensionless() {
// Dimensionless divided by Velocity<Dimensionless>
var m5 = Units.Value.of(10);
var m6 = Units.Value.per(Units.Second).of(2);
result = m5.divide(m6);
var num = Units.Value.of(10);
var denom = Units.Value.per(Units.Second).of(2);
var result = num.divide(denom);
assertEquals(result.magnitude(), 5);
assertEquals(result.unit(), Units.Seconds);
}

@Test
void testDivideTimeMeasure() {
// Time divide
var m7 = Units.Meters.of(12);
var m8 = Units.Seconds.of(2);
result = m7.divide(m8);
var num = Units.Meters.of(12);
var denom = Units.Seconds.of(2);
var result = num.divide(denom);
assertEquals(result.magnitude(), 6);
assertEquals(result.unit(), Units.Meters.per(Units.Second));
}

@Test
void testDividePerMeasure() {
// Per divide
var m1 = Units.Volts.of(6);
var m2 = Units.Volts.per(Units.Meter).of(2);
var result = m1.divide(m2);
var num = Units.Volts.of(6);
var denom = Units.Volts.per(Units.Meter).of(2);
var result = num.divide(denom);
assertEquals(result.magnitude(), 3);
assertEquals(result.unit(), Units.Meter);
}

@Test
void testDimensionlessDividePer() {
// Dimensionless divided by Per
var m3 = Units.Value.of(8);
var m4 = Units.Volts.per(Units.Meter).of(2);
result = m3.divide(m4);
var num = Units.Value.of(8);
var denom = Units.Volts.per(Units.Meter).of(2);
var result = num.divide(denom);
assertEquals(result.magnitude(), 4);
assertEquals(result.unit(), Units.Meters.per(Units.Volt));
}

@Test
void testDividePerDimensionless() {
// Dimensionless divided by Per<Dimensionless, U>
var m5 = Units.Value.of(10);
var m6 = Units.Value.per(Units.Meter).of(2);
result = m5.divide(m6);
var num = Units.Value.of(10);
var denom = Units.Value.per(Units.Meter).of(2);
var result = num.divide(denom);
assertEquals(result.magnitude(), 5);
assertEquals(result.unit(), Units.Meters);
}

@Test
void testDivideTimePerMeasure() {
// Dimensionless divided by Per<Time, U>
var m7 = Units.Value.of(12);
var m8 = Units.Milliseconds.per(Units.Meter).of(2);
result = m7.divide(m8);
var num = Units.Value.of(12);
var denom = Units.Milliseconds.per(Units.Meter).of(2);
var result = num.divide(denom);
assertEquals(result.magnitude(), 6);
assertEquals(result.unit(), Units.Meters.per(Units.Millisecond));
}
Expand Down

0 comments on commit 767ad4b

Please sign in to comment.