This commit is contained in:
SKILLISSUE1 2025-11-07 20:32:33 +07:00
parent b1cda446cc
commit 6dfdf3951e

View File

@ -0,0 +1,63 @@
package com.example.tiptime
import org.junit.Assert.assertEquals
import org.junit.Test
class BMICalculatorTest {
// Test untuk perhitungan BMI dengan unit Metric
@Test
fun calculateBMI_metricUnits_correctCalculation() {
val result = calculateBMI(170.0, 65.0, false)
assertEquals("22.5", result)
}
// Test untuk perhitungan BMI dengan unit USC (Imperial)
@Test
fun calculateBMI_uscUnits_correctCalculation() {
val result = calculateBMI(68.0, 150.0, true)
// Rumus: 703 * (150 / (68^2)) = 22.8
assertEquals("22.8", result)
}
// Test jika input tinggi atau berat = 0 → hasil harus "0.0"
@Test
fun calculateBMI_zeroInput_returnsZero() {
val result = calculateBMI(0.0, 0.0, false)
assertEquals("0.0", result)
}
// Test kategori BMI untuk underweight
@Test
fun calculateBMICategory_underweight_returnsUnderweight() {
val result = calculateBMICategory("17.5")
assertEquals("Underweight", result)
}
// Test kategori BMI untuk normal weight
@Test
fun calculateBMICategory_normal_returnsNormal() {
val result = calculateBMICategory("22.0")
assertEquals("Normal weight", result)
}
// Test kategori BMI untuk overweight
@Test
fun calculateBMICategory_overweight_returnsOverweight() {
val result = calculateBMICategory("27.0")
assertEquals("Overweight", result)
}
// Test kategori BMI untuk obese
@Test
fun calculateBMICategory_obese_returnsObese() {
val result = calculateBMICategory("32.0")
assertEquals("Obese", result)
}
// Test input tidak valid (string bukan angka)
@Test
fun calculateBMICategory_invalidInput_returnsTidakDiketahui() {
val result = calculateBMICategory("abc")
assertEquals("Underweight", result) // default 0.0 masuk ke underweight
}
}