feat: add WindowSizeClass system for responsive layout (Closes #1)

This commit was merged in pull request #40.
This commit is contained in:
2026-03-13 12:54:19 +01:00
parent d08cc83348
commit 1555275aeb
3 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
package org.shahondin1624
import androidx.compose.ui.unit.dp
import org.shahondin1624.theme.WindowSizeClass
import kotlin.test.Test
import kotlin.test.assertEquals
class WindowSizeClassTest {
@Test
fun compactForWidthBelow600() {
assertEquals(WindowSizeClass.Compact, WindowSizeClass.fromWidth(0.dp))
assertEquals(WindowSizeClass.Compact, WindowSizeClass.fromWidth(320.dp))
assertEquals(WindowSizeClass.Compact, WindowSizeClass.fromWidth(599.dp))
}
@Test
fun mediumForWidth600To840() {
assertEquals(WindowSizeClass.Medium, WindowSizeClass.fromWidth(600.dp))
assertEquals(WindowSizeClass.Medium, WindowSizeClass.fromWidth(720.dp))
assertEquals(WindowSizeClass.Medium, WindowSizeClass.fromWidth(840.dp))
}
@Test
fun expandedForWidthAbove840() {
assertEquals(WindowSizeClass.Expanded, WindowSizeClass.fromWidth(841.dp))
assertEquals(WindowSizeClass.Expanded, WindowSizeClass.fromWidth(1200.dp))
assertEquals(WindowSizeClass.Expanded, WindowSizeClass.fromWidth(1920.dp))
}
@Test
fun boundaryAt600() {
assertEquals(WindowSizeClass.Compact, WindowSizeClass.fromWidth(599.9.dp))
assertEquals(WindowSizeClass.Medium, WindowSizeClass.fromWidth(600.dp))
}
@Test
fun boundaryAt840() {
assertEquals(WindowSizeClass.Medium, WindowSizeClass.fromWidth(840.dp))
assertEquals(WindowSizeClass.Expanded, WindowSizeClass.fromWidth(840.1.dp))
}
}