package io.github.abrarul.modularai import io.github.abrarul.modularai.model.DeviceProfiler import io.github.abrarul.modularai.model.Profile import io.github.abrarul.modularai.model.Tier import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test class RecommendTest { private fun p(total: Long, avail: Long, tier: Tier) = Profile("x", "arm64-v8a", 8, total, avail, 50_000, false, 100.0, tier) @Test fun lowRamPicksTinyQuantAndSmallContext() { val r = DeviceProfiler.recommend(p(2_000, 800, Tier.ULTRA_LIGHT)) assertEquals("IQ2_XS", r.quant) assertEquals(2048, r.contextTokens) } @Test fun midRamAllowsSevenBClassModels() { val r = DeviceProfiler.recommend(p(8_000, 6_000, Tier.BALANCED)) assertTrue(r.maxParamsB >= 3.0) assertEquals("Q4_K_M", r.quant) } @Test fun highRamUnlocksBiggerContext() { val r = DeviceProfiler.recommend(p(16_000, 12_000, Tier.POWER)) assertTrue(r.contextTokens >= 4096) } }