mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-18 16:25:27 +02:00
data:converter module tests refactor
This commit is contained in:
parent
e6f74c56f8
commit
ae3e6b291e
@ -16,9 +16,8 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sadellie.unitto.data.converter
|
package com.sadellie.unitto.data.common
|
||||||
|
|
||||||
import com.sadellie.unitto.data.common.lev
|
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
@ -18,13 +18,32 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.data.converter
|
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.core.base.OutputFormat
|
||||||
import com.sadellie.unitto.data.common.format
|
import com.sadellie.unitto.data.common.format
|
||||||
import com.sadellie.unitto.data.database.UnittoDatabase
|
import com.sadellie.unitto.data.converter.collections.accelerationCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.angleCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.areaCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.currencyCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.dataCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.dataTransferCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.electrostaticCapacitance
|
||||||
|
import com.sadellie.unitto.data.converter.collections.energyCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.flowRateCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.fluxCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.forceCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.fuelConsumptionCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.lengthCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.luminanceCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.massCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.numberBaseCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.powerCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.prefixCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.pressureCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.speedCollection
|
||||||
|
import com.sadellie.unitto.data.converter.collections.temperatureCollection
|
||||||
|
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.model.UnitGroup
|
import com.sadellie.unitto.data.model.UnitGroup
|
||||||
import com.sadellie.unitto.data.model.unit.DefaultUnit
|
import com.sadellie.unitto.data.model.unit.DefaultUnit
|
||||||
import com.sadellie.unitto.data.model.unit.NumberBaseUnit
|
import com.sadellie.unitto.data.model.unit.NumberBaseUnit
|
||||||
@ -33,20 +52,35 @@ import kotlinx.coroutines.runBlocking
|
|||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
|
||||||
class AllUnitsTest {
|
class AllUnitsTest {
|
||||||
|
|
||||||
private var history: MutableMap<UnitGroup, Set<String>> = mutableMapOf()
|
private var history: MutableMap<UnitGroup, Set<String>> = mutableMapOf()
|
||||||
private val mContext: Context = InstrumentationRegistry.getInstrumentation().targetContext
|
private val allUnits = lengthCollection +
|
||||||
private val database = Room.inMemoryDatabaseBuilder(mContext, UnittoDatabase::class.java).build()
|
currencyCollection +
|
||||||
private val allUnitsRepository = UnitsRepositoryImpl(
|
massCollection +
|
||||||
unitsDao = database.unitsDao(),
|
speedCollection +
|
||||||
currencyRatesDao = database.currencyRatesDao(),
|
temperatureCollection +
|
||||||
mContext = mContext
|
areaCollection +
|
||||||
)
|
timeCollection +
|
||||||
|
volumeCollection +
|
||||||
|
dataCollection +
|
||||||
|
pressureCollection +
|
||||||
|
accelerationCollection +
|
||||||
|
energyCollection +
|
||||||
|
powerCollection +
|
||||||
|
angleCollection +
|
||||||
|
dataTransferCollection +
|
||||||
|
fluxCollection +
|
||||||
|
numberBaseCollection +
|
||||||
|
electrostaticCapacitance +
|
||||||
|
prefixCollection +
|
||||||
|
forceCollection +
|
||||||
|
torqueCollection +
|
||||||
|
flowRateCollection +
|
||||||
|
luminanceCollection +
|
||||||
|
fuelConsumptionCollection
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAcceleration() = testWithUnits {
|
fun testAcceleration() = testWithUnits {
|
||||||
@ -551,9 +585,8 @@ class AllUnitsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun String.checkWith(checkingId: String, value: String, expected: String) {
|
private fun String.checkWith(checkingId: String, value: String, expected: String) {
|
||||||
val str = this
|
val unitFrom = allUnits.first { it.id == this }
|
||||||
val unitFrom = runBlocking { allUnitsRepository.getById(str) }
|
val unitTo = allUnits.first { it.id == checkingId }
|
||||||
val unitTo = runBlocking { allUnitsRepository.getById(checkingId) }
|
|
||||||
|
|
||||||
val actual = when (unitFrom.group) {
|
val actual = when (unitFrom.group) {
|
||||||
UnitGroup.NUMBER_BASE -> (unitFrom as NumberBaseUnit).convert((unitTo as NumberBaseUnit), value)
|
UnitGroup.NUMBER_BASE -> (unitFrom as NumberBaseUnit).convert((unitTo as NumberBaseUnit), value)
|
||||||
@ -573,8 +606,12 @@ class AllUnitsTest {
|
|||||||
@After
|
@After
|
||||||
fun after() = runBlocking {
|
fun after() = runBlocking {
|
||||||
val unitGroup = history.keys.first()
|
val unitGroup = history.keys.first()
|
||||||
|
val testedCount = history[unitGroup]?.size
|
||||||
|
val totalCount = allUnits.count { it.group == unitGroup }
|
||||||
|
|
||||||
// GROUP : testedCount / totalCount
|
// GROUP : testedCount / totalCount
|
||||||
println("${unitGroup.name} : ${history[unitGroup]?.size} / ${allUnitsRepository.getCollection(unitGroup).size}")
|
println("${unitGroup.name} : $testedCount / $totalCount")
|
||||||
|
if (testedCount != totalCount) throw Exception("Didn't cover all units")
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun testWithUnits(block: MyUnitIDS.() -> Unit): Unit = with(MyUnitIDS, block = block)
|
private fun testWithUnits(block: MyUnitIDS.() -> Unit): Unit = with(MyUnitIDS, block = block)
|
Loading…
x
Reference in New Issue
Block a user