diff --git a/core/base/src/main/res/values/strings.xml b/core/base/src/main/res/values/strings.xml index 1b0cf92c..337f9d35 100644 --- a/core/base/src/main/res/values/strings.xml +++ b/core/base/src/main/res/values/strings.xml @@ -95,7 +95,7 @@ Used in this dialog window. Should be short --> History view Clear cache Clear input - Start new expression when clicking \"=\" and clicking any button + Start new expression when clicking \"=\" and any button Color scheme Color theme Pick a theming mode @@ -257,31 +257,39 @@ Maybe this can be labeled better? Let me know. It should be something that can d Third Cosmic Velocity v3 Cubic centimeter - cm^3 + cm³ + Cubic foot Cubic Foot/hour - ft3/h + ft³/h Cubic Foot/minute - ft3/m + ft³/m Cubic Foot/second - ft3/s + ft³/s + ft³ + Cubic inch + in³ Cubic kilometer - km^3 + km³ Cubic meter Cubic Meter/hour - m3/h + m³/h Cubic Meter/minute - m3/m + m³/m Cubic Meter/second - m3/s - m^3 + m³/s + + Cubic mile + mi³ Cubic millimeter Cubic Millimeter/hour - mm3/h + mm³/h Cubic Millimeter/minute - mm3/m + mm³/m Cubic Millimeter/second - mm3/s - mm^3 + mm³/s + mm³ + Cubic yard + yd³ 1inch Network NCH Cardano @@ -787,13 +795,13 @@ Maybe this can be labeled better? Let me know. It should be something that can d Gallon/second (US) gal/s Gallon/100 mile (UK) - gal/100 mi (UK) + gal/100 mi Gallon/mile (UK) - gal/mi (UK) + gal/mi Gallon/100 mile (US) - gal/100 mi (US) + gal/100 mi Gallon/mile (US) - gal/mi (US) + gal/mi Gibibit Gibibit/second Gib/s @@ -828,6 +836,8 @@ Maybe this can be labeled better? Let me know. It should be something that can d gf*m Gram-force millimeter gf*mm + Gram-force/square centimeter + gf/cm² gf g Acceleration @@ -867,21 +877,21 @@ Maybe this can be labeled better? Let me know. It should be something that can d Hour h Imperial cup - cup (UK) + cup Imperial fluid ounce - fl oz (UK) + fl oz Imperial gallon - gal (UK) + gal Imperial pint - pt (UK) + pt Imperial quart - qt (UK) + qt Imperial tablespoon - tablespoon (UK) + tablespoon Imperial teaspoon - teaspoon (UK) + teaspoon Imperial ton - t (UK) + t Inch in Jiffy @@ -930,6 +940,10 @@ Maybe this can be labeled better? Let me know. It should be something that can d kgf*m Kilogram-force millimeter kgf*mm + Kilogram-force/square centimeter + kgf/cm² + Kilogram-force/square meter + kgf/m² kgf kg Kilojoule @@ -1051,11 +1065,11 @@ Maybe this can be labeled better? Let me know. It should be something that can d Metric ton t Mile/gallon (UK) - mpg (UK) + mpg Mile/gallon (US) - mpg (US) + mpg Mile/liter (US) - mi/L (US) + mi/L Microfarad µF Microgram @@ -1193,6 +1207,10 @@ Maybe this can be labeled better? Let me know. It should be something that can d lbf*ft Pound-force inch lbf*in + Pound-force/square foot + pf/f² + Pound-force/square inch + pf/in² lbf lbs Atto @@ -1332,19 +1350,19 @@ Maybe this can be labeled better? Let me know. It should be something that can d Uranus surface gravity Uranus g US fluid ounce - fl oz (US) + fl oz US legal cup - cup (US) + cup US liquid gallon - gal (US) + gal US liquid pint - pt (US) + pt US liquid quart - qt (US) + qt US tablespoon - tablespoon (US) + tablespoon US teaspoon - teaspoon (US) + teaspoon Speed of light in vacuum c Venus equatorial radius diff --git a/data/converter/build.gradle.kts b/data/converter/build.gradle.kts index 099f9476..21c6c1c8 100644 --- a/data/converter/build.gradle.kts +++ b/data/converter/build.gradle.kts @@ -35,8 +35,6 @@ android { } dependencies { - testImplementation(libs.org.robolectric.robolectric) - implementation(libs.androidx.lifecycle.lifecycle.runtime.compose) implementation(libs.androidx.datastore.datastore.preferences) diff --git a/data/converter/src/test/java/com/sadellie/unitto/data/converter/AllUnitsTest.kt b/data/converter/src/androidTest/java/com/sadellie/unitto/data/converter/AllUnitsTest.kt similarity index 97% rename from data/converter/src/test/java/com/sadellie/unitto/data/converter/AllUnitsTest.kt rename to data/converter/src/androidTest/java/com/sadellie/unitto/data/converter/AllUnitsTest.kt index 34810cac..0e9ff4ba 100644 --- a/data/converter/src/test/java/com/sadellie/unitto/data/converter/AllUnitsTest.kt +++ b/data/converter/src/androidTest/java/com/sadellie/unitto/data/converter/AllUnitsTest.kt @@ -20,6 +20,8 @@ package com.sadellie.unitto.data.converter import android.content.Context import androidx.room.Room +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry import com.sadellie.unitto.core.base.OutputFormat import com.sadellie.unitto.data.common.format import com.sadellie.unitto.data.database.UnittoDatabase @@ -32,15 +34,13 @@ import org.junit.After import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner -import org.robolectric.RuntimeEnvironment import java.math.BigDecimal -@RunWith(RobolectricTestRunner::class) +@RunWith(AndroidJUnit4::class) class AllUnitsTest { private var history: MutableMap> = mutableMapOf() - private val mContext: Context = RuntimeEnvironment.getApplication().applicationContext + private val mContext: Context = InstrumentationRegistry.getInstrumentation().targetContext private val database = Room.inMemoryDatabaseBuilder(mContext, UnittoDatabase::class.java).build() private val allUnitsRepository = UnitsRepositoryImpl( unitsDao = database.unitsDao(), @@ -257,6 +257,11 @@ class AllUnitsTest { torr.checkWith(hectopascal, "456", "607.95") micron_of_mercury.checkWith(hectopascal, "456", "0.60795") millimeter_of_mercury.checkWith(hectopascal, "456", "607.95") + kilogram_force_per_square_meter.checkWith(dekapascal, "456", "447.18324") + kilogram_force_per_square_centimeter.checkWith(dekapascal, "456", "4471832.4") + gram_force_per_square_centimeter.checkWith(dekapascal, "456", "4471.8324") + pound_force_per_square_foot.checkWith(dekapascal, "456", "2183.33981") + pound_force_per_square_inch.checkWith(dekapascal, "456", "314400.93257") } @Test @@ -362,6 +367,10 @@ class AllUnitsTest { cubic_centimeter.checkWith(us_liquid_gallon, "1507", "0.39811") cubic_meter.checkWith(us_liquid_gallon, "1507", "398107.2829") cubic_kilometer.checkWith(us_liquid_gallon, "0.0000001507", "39810.72829") + cubic_inch.checkWith(us_liquid_gallon, "1507", "6.52381") + cubic_foot.checkWith(us_liquid_gallon, "1507", "11273.14286") + cubic_yard.checkWith(us_liquid_gallon, "1507", "304374.85714") + cubic_mile.checkWith(us_liquid_gallon, "0.00001507", "16593835.41175") } @Test diff --git a/data/converter/src/test/java/com/sadellie/unitto/data/converter/LevenshteinTest.kt b/data/converter/src/androidTest/java/com/sadellie/unitto/data/converter/LevenshteinTest.kt similarity index 100% rename from data/converter/src/test/java/com/sadellie/unitto/data/converter/LevenshteinTest.kt rename to data/converter/src/androidTest/java/com/sadellie/unitto/data/converter/LevenshteinTest.kt diff --git a/data/converter/src/main/java/com/sadellie/unitto/data/converter/MyUnitIDS.kt b/data/converter/src/main/java/com/sadellie/unitto/data/converter/MyUnitIDS.kt index 4f707a08..b3a8b660 100644 --- a/data/converter/src/main/java/com/sadellie/unitto/data/converter/MyUnitIDS.kt +++ b/data/converter/src/main/java/com/sadellie/unitto/data/converter/MyUnitIDS.kt @@ -154,6 +154,10 @@ object MyUnitIDS { const val cubic_centimeter = "cubic_centimeter" const val cubic_meter = "cubic_meter" const val cubic_kilometer = "cubic_kilometer" + const val cubic_inch = "cubic_inch" + const val cubic_foot = "cubic_foot" + const val cubic_yard = "cubic_yard" + const val cubic_mile = "cubic_mile" // TIME const val attosecond = "attosecond" @@ -261,6 +265,11 @@ object MyUnitIDS { const val torr = "torr" const val micron_of_mercury = "micron_of_mercury" const val millimeter_of_mercury = "millimeter_of_mercury" + const val kilogram_force_per_square_meter = "kilogram_force_per_square_meter" + const val kilogram_force_per_square_centimeter = "kilogram_force_per_square_centimeter" + const val gram_force_per_square_centimeter = "gram_force_per_square_centimeter" + const val pound_force_per_square_foot = "pound_force_per_square_foot" + const val pound_force_per_square_inch = "pound_force_per_square_inch" // ACCELERATION const val attometer_per_square_second = "attometer_per_square_second" diff --git a/data/converter/src/main/java/com/sadellie/unitto/data/converter/UnitsRepository.kt b/data/converter/src/main/java/com/sadellie/unitto/data/converter/UnitsRepositoryImpl.kt similarity index 100% rename from data/converter/src/main/java/com/sadellie/unitto/data/converter/UnitsRepository.kt rename to data/converter/src/main/java/com/sadellie/unitto/data/converter/UnitsRepositoryImpl.kt index 6eef19ce..e55d53a9 100644 --- a/data/converter/src/main/java/com/sadellie/unitto/data/converter/UnitsRepository.kt +++ b/data/converter/src/main/java/com/sadellie/unitto/data/converter/UnitsRepositoryImpl.kt @@ -20,16 +20,6 @@ package com.sadellie.unitto.data.converter import android.content.Context import android.util.Log -import com.sadellie.unitto.data.database.CurrencyRatesDao -import com.sadellie.unitto.data.database.CurrencyRatesEntity -import com.sadellie.unitto.data.database.UnitsDao -import com.sadellie.unitto.data.database.UnitsEntity -import com.sadellie.unitto.data.model.UnitGroup -import com.sadellie.unitto.data.model.UnitsListSorting -import com.sadellie.unitto.data.model.repository.UnitsRepository -import com.sadellie.unitto.data.model.unit.AbstractUnit -import com.sadellie.unitto.data.model.unit.ReverseUnit -import com.sadellie.unitto.data.model.unit.filterByLev import com.sadellie.unitto.data.converter.collections.accelerationCollection import com.sadellie.unitto.data.converter.collections.angleCollection import com.sadellie.unitto.data.converter.collections.areaCollection @@ -55,6 +45,16 @@ import com.sadellie.unitto.data.converter.collections.timeCollection import com.sadellie.unitto.data.converter.collections.torqueCollection import com.sadellie.unitto.data.converter.collections.volumeCollection import com.sadellie.unitto.data.converter.remote.CurrencyApi +import com.sadellie.unitto.data.database.CurrencyRatesDao +import com.sadellie.unitto.data.database.CurrencyRatesEntity +import com.sadellie.unitto.data.database.UnitsDao +import com.sadellie.unitto.data.database.UnitsEntity +import com.sadellie.unitto.data.model.UnitGroup +import com.sadellie.unitto.data.model.UnitsListSorting +import com.sadellie.unitto.data.model.repository.UnitsRepository +import com.sadellie.unitto.data.model.unit.AbstractUnit +import com.sadellie.unitto.data.model.unit.ReverseUnit +import com.sadellie.unitto.data.model.unit.filterByLev import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow diff --git a/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Pressure.kt b/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Pressure.kt index 2613e811..88b743ef 100644 --- a/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Pressure.kt +++ b/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Pressure.kt @@ -19,38 +19,43 @@ package com.sadellie.unitto.data.converter.collections import com.sadellie.unitto.core.base.R +import com.sadellie.unitto.data.converter.MyUnitIDS import com.sadellie.unitto.data.model.UnitGroup import com.sadellie.unitto.data.model.unit.AbstractUnit import com.sadellie.unitto.data.model.unit.NormalUnit -import com.sadellie.unitto.data.converter.MyUnitIDS import java.math.BigDecimal internal val pressureCollection: List by lazy { listOf( - NormalUnit(MyUnitIDS.attopascal, BigDecimal.valueOf(1), UnitGroup.PRESSURE, R.string.unit_attopascal, R.string.unit_attopascal_short), - NormalUnit(MyUnitIDS.femtopascal, BigDecimal.valueOf(1E+3), UnitGroup.PRESSURE, R.string.unit_femtopascal, R.string.unit_femtopascal_short), - NormalUnit(MyUnitIDS.picopascal, BigDecimal.valueOf(1E+6), UnitGroup.PRESSURE, R.string.unit_picopascal, R.string.unit_picopascal_short), - NormalUnit(MyUnitIDS.nanopascal, BigDecimal.valueOf(1E+9), UnitGroup.PRESSURE, R.string.unit_nanopascal, R.string.unit_nanopascal_short), - NormalUnit(MyUnitIDS.micropascal, BigDecimal.valueOf(1E+12), UnitGroup.PRESSURE, R.string.unit_micropascal, R.string.unit_micropascal_short), - NormalUnit(MyUnitIDS.millipascal, BigDecimal.valueOf(1E+15), UnitGroup.PRESSURE, R.string.unit_millipascal, R.string.unit_millipascal_short), - NormalUnit(MyUnitIDS.centipascal, BigDecimal.valueOf(1E+16), UnitGroup.PRESSURE, R.string.unit_centipascal, R.string.unit_centipascal_short), - NormalUnit(MyUnitIDS.decipascal, BigDecimal.valueOf(1E+17), UnitGroup.PRESSURE, R.string.unit_decipascal, R.string.unit_decipascal_short), - NormalUnit(MyUnitIDS.pascal, BigDecimal.valueOf(1E+18), UnitGroup.PRESSURE, R.string.unit_pascal, R.string.unit_pascal_short), - NormalUnit(MyUnitIDS.dekapascal, BigDecimal.valueOf(1E+19), UnitGroup.PRESSURE, R.string.unit_dekapascal, R.string.unit_dekapascal_short), - NormalUnit(MyUnitIDS.hectopascal, BigDecimal.valueOf(1E+20), UnitGroup.PRESSURE, R.string.unit_hectopascal, R.string.unit_hectopascal_short), - NormalUnit(MyUnitIDS.millibar, BigDecimal.valueOf(1E+20), UnitGroup.PRESSURE, R.string.unit_millibar, R.string.unit_millibar_short), - NormalUnit(MyUnitIDS.bar, BigDecimal.valueOf(1E+23), UnitGroup.PRESSURE, R.string.unit_bar, R.string.unit_bar_short), - NormalUnit(MyUnitIDS.kilopascal, BigDecimal.valueOf(1E+21), UnitGroup.PRESSURE, R.string.unit_kilopascal, R.string.unit_kilopascal_short), - NormalUnit(MyUnitIDS.megapascal, BigDecimal.valueOf(1E+24), UnitGroup.PRESSURE, R.string.unit_megapascal, R.string.unit_megapascal_short), - NormalUnit(MyUnitIDS.gigapascal, BigDecimal.valueOf(1E+27), UnitGroup.PRESSURE, R.string.unit_gigapascal, R.string.unit_gigapascal_short), - NormalUnit(MyUnitIDS.terapascal, BigDecimal.valueOf(1E+30), UnitGroup.PRESSURE, R.string.unit_terapascal, R.string.unit_terapascal_short), - NormalUnit(MyUnitIDS.petapascal, BigDecimal.valueOf(1E+33), UnitGroup.PRESSURE, R.string.unit_petapascal, R.string.unit_petapascal_short), - NormalUnit(MyUnitIDS.exapascal, BigDecimal.valueOf(1E+36), UnitGroup.PRESSURE, R.string.unit_exapascal, R.string.unit_exapascal_short), - NormalUnit(MyUnitIDS.psi, BigDecimal.valueOf(6.8947572931783E+21), UnitGroup.PRESSURE, R.string.unit_psi, R.string.unit_psi_short), - NormalUnit(MyUnitIDS.ksi, BigDecimal.valueOf(6.8947572931783E+24), UnitGroup.PRESSURE, R.string.unit_ksi, R.string.unit_ksi_short), - NormalUnit(MyUnitIDS.standard_atmosphere, BigDecimal.valueOf(101.325E+21), UnitGroup.PRESSURE, R.string.unit_standard_atmosphere, R.string.unit_standard_atmosphere_short), - NormalUnit(MyUnitIDS.torr, BigDecimal.valueOf(1.3332236842108281E+20), UnitGroup.PRESSURE, R.string.unit_torr, R.string.unit_torr_short), - NormalUnit(MyUnitIDS.micron_of_mercury, BigDecimal.valueOf(1.3332236842108281E+17), UnitGroup.PRESSURE, R.string.unit_micron_of_mercury, R.string.unit_micron_of_mercury_short), - NormalUnit(MyUnitIDS.millimeter_of_mercury, BigDecimal.valueOf(1.3332236842108281E+20), UnitGroup.PRESSURE, R.string.unit_millimeter_of_mercury, R.string.unit_millimeter_of_mercury_short), + NormalUnit(MyUnitIDS.attopascal, BigDecimal.valueOf(1), UnitGroup.PRESSURE, R.string.unit_attopascal, R.string.unit_attopascal_short), + NormalUnit(MyUnitIDS.femtopascal, BigDecimal.valueOf(1E+3), UnitGroup.PRESSURE, R.string.unit_femtopascal, R.string.unit_femtopascal_short), + NormalUnit(MyUnitIDS.picopascal, BigDecimal.valueOf(1E+6), UnitGroup.PRESSURE, R.string.unit_picopascal, R.string.unit_picopascal_short), + NormalUnit(MyUnitIDS.nanopascal, BigDecimal.valueOf(1E+9), UnitGroup.PRESSURE, R.string.unit_nanopascal, R.string.unit_nanopascal_short), + NormalUnit(MyUnitIDS.micropascal, BigDecimal.valueOf(1E+12), UnitGroup.PRESSURE, R.string.unit_micropascal, R.string.unit_micropascal_short), + NormalUnit(MyUnitIDS.millipascal, BigDecimal.valueOf(1E+15), UnitGroup.PRESSURE, R.string.unit_millipascal, R.string.unit_millipascal_short), + NormalUnit(MyUnitIDS.centipascal, BigDecimal.valueOf(1E+16), UnitGroup.PRESSURE, R.string.unit_centipascal, R.string.unit_centipascal_short), + NormalUnit(MyUnitIDS.decipascal, BigDecimal.valueOf(1E+17), UnitGroup.PRESSURE, R.string.unit_decipascal, R.string.unit_decipascal_short), + NormalUnit(MyUnitIDS.pascal, BigDecimal.valueOf(1E+18), UnitGroup.PRESSURE, R.string.unit_pascal, R.string.unit_pascal_short), + NormalUnit(MyUnitIDS.dekapascal, BigDecimal.valueOf(1E+19), UnitGroup.PRESSURE, R.string.unit_dekapascal, R.string.unit_dekapascal_short), + NormalUnit(MyUnitIDS.hectopascal, BigDecimal.valueOf(1E+20), UnitGroup.PRESSURE, R.string.unit_hectopascal, R.string.unit_hectopascal_short), + NormalUnit(MyUnitIDS.millibar, BigDecimal.valueOf(1E+20), UnitGroup.PRESSURE, R.string.unit_millibar, R.string.unit_millibar_short), + NormalUnit(MyUnitIDS.bar, BigDecimal.valueOf(1E+23), UnitGroup.PRESSURE, R.string.unit_bar, R.string.unit_bar_short), + NormalUnit(MyUnitIDS.kilopascal, BigDecimal.valueOf(1E+21), UnitGroup.PRESSURE, R.string.unit_kilopascal, R.string.unit_kilopascal_short), + NormalUnit(MyUnitIDS.megapascal, BigDecimal.valueOf(1E+24), UnitGroup.PRESSURE, R.string.unit_megapascal, R.string.unit_megapascal_short), + NormalUnit(MyUnitIDS.gigapascal, BigDecimal.valueOf(1E+27), UnitGroup.PRESSURE, R.string.unit_gigapascal, R.string.unit_gigapascal_short), + NormalUnit(MyUnitIDS.terapascal, BigDecimal.valueOf(1E+30), UnitGroup.PRESSURE, R.string.unit_terapascal, R.string.unit_terapascal_short), + NormalUnit(MyUnitIDS.petapascal, BigDecimal.valueOf(1E+33), UnitGroup.PRESSURE, R.string.unit_petapascal, R.string.unit_petapascal_short), + NormalUnit(MyUnitIDS.exapascal, BigDecimal.valueOf(1E+36), UnitGroup.PRESSURE, R.string.unit_exapascal, R.string.unit_exapascal_short), + NormalUnit(MyUnitIDS.psi, BigDecimal.valueOf(6.8947572931783E+21), UnitGroup.PRESSURE, R.string.unit_psi, R.string.unit_psi_short), + NormalUnit(MyUnitIDS.ksi, BigDecimal.valueOf(6.8947572931783E+24), UnitGroup.PRESSURE, R.string.unit_ksi, R.string.unit_ksi_short), + NormalUnit(MyUnitIDS.standard_atmosphere, BigDecimal.valueOf(101.325E+21), UnitGroup.PRESSURE, R.string.unit_standard_atmosphere, R.string.unit_standard_atmosphere_short), + NormalUnit(MyUnitIDS.torr, BigDecimal.valueOf(1.3332236842108281E+20), UnitGroup.PRESSURE, R.string.unit_torr, R.string.unit_torr_short), + NormalUnit(MyUnitIDS.micron_of_mercury, BigDecimal.valueOf(1.3332236842108281E+17), UnitGroup.PRESSURE, R.string.unit_micron_of_mercury, R.string.unit_micron_of_mercury_short), + NormalUnit(MyUnitIDS.millimeter_of_mercury, BigDecimal.valueOf(1.3332236842108281E+20), UnitGroup.PRESSURE, R.string.unit_millimeter_of_mercury, R.string.unit_millimeter_of_mercury_short), + NormalUnit(MyUnitIDS.kilogram_force_per_square_meter, BigDecimal.valueOf(9.80665E+18), UnitGroup.PRESSURE, R.string.unit_kilogram_force_per_square_meter, R.string.unit_kilogram_force_per_square_meter_short), + NormalUnit(MyUnitIDS.kilogram_force_per_square_centimeter, BigDecimal.valueOf(9.80665E+22), UnitGroup.PRESSURE, R.string.unit_kilogram_force_per_square_centimeter, R.string.unit_kilogram_force_per_square_centimeter_short), + NormalUnit(MyUnitIDS.gram_force_per_square_centimeter, BigDecimal.valueOf(9.80665E+19), UnitGroup.PRESSURE, R.string.unit_gram_force_per_square_centimeter, R.string.unit_gram_force_per_square_centimeter_short), + NormalUnit(MyUnitIDS.pound_force_per_square_foot, BigDecimal.valueOf(4.788025898E+19), UnitGroup.PRESSURE, R.string.unit_pound_force_per_square_foot, R.string.unit_pound_force_per_square_foot_short), + NormalUnit(MyUnitIDS.pound_force_per_square_inch, BigDecimal.valueOf(6.8947572931783E+21), UnitGroup.PRESSURE, R.string.unit_pound_force_per_square_inch, R.string.unit_pound_force_per_square_inch_short), ) } diff --git a/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Volume.kt b/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Volume.kt index ef7d0da3..164c11fe 100644 --- a/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Volume.kt +++ b/data/converter/src/main/java/com/sadellie/unitto/data/converter/collections/Volume.kt @@ -19,10 +19,10 @@ package com.sadellie.unitto.data.converter.collections import com.sadellie.unitto.core.base.R +import com.sadellie.unitto.data.converter.MyUnitIDS import com.sadellie.unitto.data.model.UnitGroup import com.sadellie.unitto.data.model.unit.AbstractUnit import com.sadellie.unitto.data.model.unit.NormalUnit -import com.sadellie.unitto.data.converter.MyUnitIDS import java.math.BigDecimal internal val volumeCollection: List by lazy { @@ -48,5 +48,9 @@ internal val volumeCollection: List by lazy { NormalUnit(MyUnitIDS.cubic_centimeter, BigDecimal.valueOf(1_000_000_000_000_000), UnitGroup.VOLUME, R.string.unit_cubic_centimeter, R.string.unit_cubic_centimeter_short), NormalUnit(MyUnitIDS.cubic_meter, BigDecimal.valueOf(1.0E+21), UnitGroup.VOLUME, R.string.unit_cubic_meter, R.string.unit_cubic_meter_short), NormalUnit(MyUnitIDS.cubic_kilometer, BigDecimal.valueOf(1.0E+30), UnitGroup.VOLUME, R.string.unit_cubic_kilometer, R.string.unit_cubic_kilometer_short), + NormalUnit(MyUnitIDS.cubic_inch, BigDecimal.valueOf(1.6387064E+16), UnitGroup.VOLUME, R.string.unit_cubic_inch, R.string.unit_cubic_inch_short), + NormalUnit(MyUnitIDS.cubic_foot, BigDecimal.valueOf(2.831684659E+19), UnitGroup.VOLUME, R.string.unit_cubic_foot, R.string.unit_cubic_foot_short), + NormalUnit(MyUnitIDS.cubic_yard, BigDecimal.valueOf(7.645548579839955E+20), UnitGroup.VOLUME, R.string.unit_cubic_yard, R.string.unit_cubic_yard_short), + NormalUnit(MyUnitIDS.cubic_mile, BigDecimal.valueOf(4.168181825440539E+30), UnitGroup.VOLUME, R.string.unit_cubic_mile, R.string.unit_cubic_mile_short), ) } diff --git a/data/converter/src/test/java/com/sadellie/unitto/data/converter/LevenshteinFilterAndSortTest.kt b/data/converter/src/test/java/com/sadellie/unitto/data/converter/LevenshteinFilterAndSortTest.kt deleted file mode 100644 index 2788ce81..00000000 --- a/data/converter/src/test/java/com/sadellie/unitto/data/converter/LevenshteinFilterAndSortTest.kt +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Unitto is a unit converter for Android - * Copyright (c) 2022-2023 Elshan Agaev - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.sadellie.unitto.data.converter - -import android.content.Context -import com.sadellie.unitto.core.base.R -import com.sadellie.unitto.data.model.UnitGroup -import com.sadellie.unitto.data.model.unit.NormalUnit -import com.sadellie.unitto.data.model.unit.filterByLev -import org.junit.Assert.assertEquals -import org.junit.Test -import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner -import org.robolectric.RuntimeEnvironment -import java.math.BigDecimal - -val baseList = listOf( - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.attometer, R.string.attometer_short), - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.nanometer, R.string.nanometer_short), - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.millimeter, R.string.millimeter_short), - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.meter, R.string.meter_short), - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.kilometer, R.string.kilometer_short), - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.mile, R.string.mile_short), - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.pound, R.string.pound_short), - NormalUnit("", BigDecimal.ONE, UnitGroup.ANGLE, R.string.kilometer_per_second, R.string.kilometer_per_second_short), -) - -@RunWith(RobolectricTestRunner::class) -class LevenshteinFilterAndSortTest { - - private val mContext: Context = RuntimeEnvironment.getApplication().applicationContext - - @Test - fun testOneEdit() { - val searchQuery = "Kelometer" - val result = baseList.asSequence().filterByLev(searchQuery, mContext).map { mContext.getString(it.displayName) }.toList() - println(result) - assertEquals( - listOf("Kilometer", "Kilometer/second", "Attometer", "Nanometer"), - result - ) - } - - @Test - fun testLongQuery() { - val searchQuery = "Kelometers per" - val result = baseList.asSequence().filterByLev(searchQuery, mContext).map { mContext.getString(it.displayName) }.toList() - println(result) - assertEquals( - listOf("Kilometer", "Kilometer/second"), - result - ) - } - - @Test - fun testMultipleMatches() { - val searchQuery = "meter" - val result = baseList.asSequence().filterByLev(searchQuery, mContext).map { mContext.getString(it.displayName) }.toList() - println(result) - assertEquals( - listOf("Meter", "Attometer", "Nanometer", "Millimeter", "Kilometer","Kilometer/second"), - result - ) - } - - @Test - fun testNone() { - val searchQuery = "Very long unit name that doesn't exist" - val result = baseList.asSequence().filterByLev(searchQuery, mContext).map { mContext.getString(it.displayName) }.toList() - println(result) - assertEquals( - listOf(), - result - ) - } - - @Test - fun testLowerAndUpperCases() { - val searchQuery = "T" - val result = baseList.asSequence().filterByLev(searchQuery, mContext).map { mContext.getString(it.displayName) }.toList() - println(result) - assertEquals( - listOf("Attometer", "Nanometer", "Millimeter", "Meter", "Kilometer", "Kilometer/second"), - result - ) - } -} \ No newline at end of file