Enhance docs, add more tests in UnitsConverter (#5946)

This commit is contained in:
Hardik Pawar
2024-10-23 12:25:23 +05:30
committed by GitHub
parent a8a1abac64
commit fef1f3ca44
2 changed files with 77 additions and 0 deletions

View File

@@ -1,10 +1,12 @@
package com.thealgorithms.conversions;
import static java.util.Map.entry;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.jupiter.api.Test;
@@ -24,4 +26,19 @@ public class UnitsConverterTest {
assertThrows(NoSuchElementException.class, () -> someConverter.convert("X", "A", 20.0));
assertThrows(NoSuchElementException.class, () -> someConverter.convert("X", "Y", 20.0));
}
@Test
void testAvailableUnits() {
final UnitsConverter someConverter = new UnitsConverter(Map.ofEntries(entry(Pair.of("Celsius", "Fahrenheit"), new AffineConverter(9.0 / 5.0, 32.0)), entry(Pair.of("Kelvin", "Celsius"), new AffineConverter(1.0, -273.15))));
assertEquals(Set.of("Celsius", "Fahrenheit", "Kelvin"), someConverter.availableUnits());
}
@Test
void testInvertConversion() {
final UnitsConverter someConverter = new UnitsConverter(Map.ofEntries(entry(Pair.of("A", "B"), new AffineConverter(2.0, 5.0))));
// Check conversion from A -> B
assertEquals(25.0, someConverter.convert("A", "B", 10.0), 0.0001);
// Check inverse conversion from B -> A
assertEquals(10.0, someConverter.convert("B", "A", 25.0), 0.0001);
}
}