feat: add responsive spacing and padding system (Closes #3)

This commit was merged in pull request #42.
This commit is contained in:
2026-03-13 12:57:44 +01:00
parent 27756f4dde
commit c4fea755d0
4 changed files with 110 additions and 5 deletions

View File

@@ -0,0 +1,60 @@
package org.shahondin1624
import androidx.compose.ui.unit.dp
import org.shahondin1624.lib.components.UiConstants
import org.shahondin1624.theme.WindowSizeClass
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class SpacingTest {
@Test
fun smallSpacingScalesWithSizeClass() {
val compact = UiConstants.Spacing.small(WindowSizeClass.Compact)
val medium = UiConstants.Spacing.small(WindowSizeClass.Medium)
val expanded = UiConstants.Spacing.small(WindowSizeClass.Expanded)
assertEquals(8.dp, compact)
assertEquals(12.dp, medium)
assertEquals(16.dp, expanded)
assertTrue(compact < medium, "Compact small should be less than Medium small")
assertTrue(medium < expanded, "Medium small should be less than Expanded small")
}
@Test
fun mediumSpacingScalesWithSizeClass() {
val compact = UiConstants.Spacing.medium(WindowSizeClass.Compact)
val medium = UiConstants.Spacing.medium(WindowSizeClass.Medium)
val expanded = UiConstants.Spacing.medium(WindowSizeClass.Expanded)
assertEquals(12.dp, compact)
assertEquals(16.dp, medium)
assertEquals(20.dp, expanded)
assertTrue(compact < medium)
assertTrue(medium < expanded)
}
@Test
fun largeSpacingScalesWithSizeClass() {
val compact = UiConstants.Spacing.large(WindowSizeClass.Compact)
val medium = UiConstants.Spacing.large(WindowSizeClass.Medium)
val expanded = UiConstants.Spacing.large(WindowSizeClass.Expanded)
assertEquals(12.dp, compact)
assertEquals(16.dp, medium)
assertEquals(24.dp, expanded)
assertTrue(compact < medium)
assertTrue(medium < expanded)
}
@Test
fun compactSpacingIsWithinRange() {
val small = UiConstants.Spacing.small(WindowSizeClass.Compact)
val med = UiConstants.Spacing.medium(WindowSizeClass.Compact)
val large = UiConstants.Spacing.large(WindowSizeClass.Compact)
assertTrue(small >= 8.dp && small <= 12.dp, "Compact small in 8-12dp range")
assertTrue(med >= 8.dp && med <= 12.dp, "Compact medium in 8-12dp range")
assertTrue(large >= 8.dp && large <= 12.dp, "Compact large in 8-12dp range")
}
}