Merge pull request #15 from Myzel394/fix-units

Fix units
This commit is contained in:
Myzel394 2024-07-13 16:46:57 +02:00 committed by GitHub
commit a3da66a6f0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 107 additions and 16 deletions

View File

@ -27,19 +27,100 @@ import java.math.BigDecimal
internal val areaCollection: List<BasicUnit> by lazy {
listOf(
NormalUnit(UnitID.cent, BigDecimal("6083246572000000000000000000000000"), UnitGroup.AREA, R.string.unit_cent, R.string.unit_cent_short),
NormalUnit(UnitID.acre, BigDecimal("60832465720000000000000000000000"), UnitGroup.AREA, R.string.unit_acre, R.string.unit_acre_short),
NormalUnit(UnitID.hectare, BigDecimal("150320296400000000000000000000000"), UnitGroup.AREA, R.string.unit_hectare, R.string.unit_hectare_short ),
NormalUnit(UnitID.square_foot, BigDecimal("1396521251000000000000000000"), UnitGroup.AREA, R.string.unit_square_foot, R.string.unit_square_foot_short),
NormalUnit(UnitID.square_mile, BigDecimal("38932778060000000000000000000000000"), UnitGroup.AREA, R.string.unit_square_mile, R.string.unit_square_mile_short),
NormalUnit(UnitID.square_yard, BigDecimal("12568691260000000000000000000"), UnitGroup.AREA, R.string.unit_square_yard, R.string.unit_square_yard_short),
NormalUnit(UnitID.square_inch, BigDecimal("9698064247000000000000000"), UnitGroup.AREA, R.string.unit_square_inch, R.string.unit_square_inch_short),
NormalUnit(UnitID.square_micrometer, BigDecimal("15032029640000000"), UnitGroup.AREA, R.string.unit_square_micrometer, R.string.unit_square_micrometer_short),
NormalUnit(UnitID.square_millimeter, BigDecimal("15032029640000000000000"), UnitGroup.AREA, R.string.unit_square_millimeter, R.string.unit_square_millimeter_short),
NormalUnit(UnitID.square_centimeter, BigDecimal("1503202964000000000000000"), UnitGroup.AREA, R.string.unit_square_centimeter, R.string.unit_square_centimeter_short),
NormalUnit(UnitID.square_decimeter, BigDecimal("150320296400000000000000000"), UnitGroup.AREA, R.string.unit_square_decimeter, R.string.unit_square_decimeter_short),
NormalUnit(UnitID.square_meter, BigDecimal("15032029640000000000000000000"), UnitGroup.AREA, R.string.unit_square_meter, R.string.unit_square_meter_short),
NormalUnit(UnitID.square_kilometer, BigDecimal("15032029640000000000000000000000000"), UnitGroup.AREA, R.string.unit_square_kilometer, R.string.unit_square_kilometer_short),
// https://www.gowebtool.com/unit-conversion/area/convert.php?from=electron_cross_section&to=acre
NormalUnit(
UnitID.acre,
BigDecimal("60832465720659000000000000000000"),
UnitGroup.AREA,
R.string.unit_acre,
R.string.unit_acre_short,
),
// https://www.gowebtool.com/unit-conversion/area/convert.php?from=electron_cross_section&to=cent
NormalUnit(
UnitID.cent,
BigDecimal("608324656845820000000000000000"),
UnitGroup.AREA,
R.string.unit_cent,
R.string.unit_cent_short,
),
NormalUnit(
UnitID.hectare,
BigDecimal("150320296474920000000000000000000"),
UnitGroup.AREA,
R.string.unit_hectare,
R.string.unit_hectare_short,
),
NormalUnit(
UnitID.square_foot,
BigDecimal("1396521251622100000000000000"),
UnitGroup.AREA,
R.string.unit_square_foot,
R.string.unit_square_foot_short,
),
// https://www.gowebtool.com/unit-conversion/area/convert.php?from=electron_cross_section&to=square_mile_survey_us_statute
NormalUnit(
UnitID.square_mile,
BigDecimal("38932778061222000000000000000000000"),
UnitGroup.AREA,
R.string.unit_square_mile,
R.string.unit_square_mile_short,
),
NormalUnit(
UnitID.square_yard,
BigDecimal("12568691264599000000000000000"),
UnitGroup.AREA,
R.string.unit_square_yard,
R.string.unit_square_yard_short,
),
NormalUnit(
UnitID.square_inch,
BigDecimal("9698064247375700000000000"),
UnitGroup.AREA,
R.string.unit_square_inch,
R.string.unit_square_inch_short,
),
NormalUnit(
UnitID.square_micrometer,
BigDecimal("15032029647492000"),
UnitGroup.AREA,
R.string.unit_square_micrometer,
R.string.unit_square_micrometer_short,
),
NormalUnit(
UnitID.square_millimeter,
BigDecimal("15032029647492000000000"),
UnitGroup.AREA,
R.string.unit_square_millimeter,
R.string.unit_square_millimeter_short,
),
NormalUnit(
UnitID.square_centimeter,
BigDecimal("1503202964749200000000000"),
UnitGroup.AREA,
R.string.unit_square_centimeter,
R.string.unit_square_centimeter_short,
),
NormalUnit(
UnitID.square_decimeter,
BigDecimal("150320296474920000000000000"),
UnitGroup.AREA,
R.string.unit_square_decimeter,
R.string.unit_square_decimeter_short,
),
NormalUnit(
UnitID.square_meter,
BigDecimal("15032029647492000000000000000"),
UnitGroup.AREA,
R.string.unit_square_meter,
R.string.unit_square_meter_short,
),
NormalUnit(
UnitID.square_kilometer,
BigDecimal("15032029647492000000000000000000000"),
UnitGroup.AREA,
R.string.unit_square_kilometer,
R.string.unit_square_kilometer_short,
),
NormalUnit(UnitID.electron_cross_section, BigDecimal("1"), UnitGroup.AREA, R.string.unit_electron_cross_section, R.string.unit_electron_cross_section_short),
)
}

View File

@ -119,12 +119,21 @@ class AllUnitsTest {
@Test
fun testArea() = testWithUnits {
cent.checkWith(acre, "75.9", "7590")
cent.checkWith(acre, "75.9", "0.759")
cent.checkWith(square_meter, "1", "40.46856")
acre.checkWith(square_kilometer, "75.9", "0.30716")
hectare.checkWith(square_foot, "75.9", "8169808.00585")
acre.checkWith(square_yard, "1", "4840")
acre.checkWith(square_meter, "1", "4046.85642")
acre.checkWith(cent, "1", "100")
hectare.checkWith(acre, "1", "2.47105");
hectare.checkWith(square_foot, "1", "107639.10417")
hectare.checkWith(square_foot, "75.9", "8169808.00628")
square_foot.checkWith(square_decimeter, "75.9", "705.13407")
square_mile.checkWith(square_foot, "75.9", "2115970560.8762")
square_mile.checkWith(square_foot, "1", "27878400")
// Probably floating point error
square_mile.checkWith(square_foot, "75.9", "2115970560.00002")
square_yard.checkWith(square_foot, "75.9", "683.1")
square_yard.checkWith(square_foot, "1", "9")
square_inch.checkWith(square_foot, "75.9", "0.52708")
square_micrometer.checkWith(square_millimeter, "75.9", "0.00008")
square_millimeter.checkWith(square_centimeter, "75.9", "0.759")
@ -133,6 +142,7 @@ class AllUnitsTest {
square_meter.checkWith(acre, "75.9", "0.01876")
square_kilometer.checkWith(hectare, "75.9", "7590")
electron_cross_section.checkWith(square_micrometer, "75.9", "0.000000000000005")
square_decimeter.checkWith(acre, "123.456", "0.00031")
}
@Test