Files
IntelligentShelves/test_list_transform.kt
lvmeng a78eaf7233 feat(app): 集成V3货柜管理功能
- 将应用包名从com.shuwei.intelligent.shelves迁移至com.sw.scalefusion.shelf
- 更新AndroidManifest.xml中的Activity声明路径以匹配新包名
- 在InitActivity中同步更新包名引用及依赖导入
- 修改GridLayoutTool工具类适配V3货柜布局排序逻辑
- 新增ApiResponse和BaseRepository统一网络响应处理
- 添加V3 API服务定义支持毛菜柜/净菜柜功能
- 新增HomeV3Activity和ShelfV3Activity实现新版货柜界面
- 集成API文档定义的货柜初始化、入柜、同步重量等核心功能
- 添加SlotModel等数据模型支持V3货柜操作
- 更新ProtocolConstants增加设备类型映射配置
- 重构网络管理层实现V2/V3接口实例分离管理
2026-06-24 17:39:44 +08:00

77 lines
3.2 KiB
Kotlin

// 测试列表转换逻辑
data class TestModel(var deviceId: String = "", val value: Int)
fun testTransform(tempList: List<TestModel>): List<TestModel> {
val list = mutableListOf<TestModel>()
val deviceId = "test-device"
val leftSize = (tempList.size + 1) / 2 // 左列长度(向上取整)
val rightSize = tempList.size / 2 // 右列长度(向下取整)
repeat(rightSize) { index ->
list.add(tempList[index].also { it.deviceId = deviceId })
list.add(tempList[leftSize + index].also { it.deviceId = deviceId })
}
// 处理奇数长度:左列比右列多一个
if (tempList.size % 2 != 0) {
list.add(tempList[rightSize].also { it.deviceId = deviceId })
}
return list
}
fun main() {
// 测试用例 1: 奇数 5 个元素
println("=== 测试 1: 奇数 [1,2,3,4,5] ===")
val test1 = listOf(1, 2, 3, 4, 5).map { TestModel(value = it) }
val result1 = testTransform(test1)
println("输入: ${test1.map { it.value }}")
println("输出: ${result1.map { it.value }}")
println("期望: [1, 4, 2, 5, 3]")
println("匹配: ${result1.map { it.value } == listOf(1, 4, 2, 5, 3)}\n")
// 测试用例 2: 偶数 6 个元素
println("=== 测试 2: 偶数 [1,2,3,4,5,6] ===")
val test2 = listOf(1, 2, 3, 4, 5, 6).map { TestModel(value = it) }
val result2 = testTransform(test2)
println("输入: ${test2.map { it.value }}")
println("输出: ${result2.map { it.value }}")
println("期望: [1, 4, 2, 5, 3, 6]")
println("匹配: ${result2.map { it.value } == listOf(1, 4, 2, 5, 3, 6)}\n")
// 测试用例 3: 偶数 10 个元素(实际业务场景)
println("=== 测试 3: 偶数 [1,2,3,4,5,6,7,8,9,10] ===")
val test3 = (1..10).map { TestModel(value = it) }
val result3 = testTransform(test3)
println("输入: ${test3.map { it.value }}")
println("输出: ${result3.map { it.value }}")
println("期望: [1, 6, 2, 7, 3, 8, 4, 9, 5, 10]")
println("匹配: ${result3.map { it.value } == listOf(1, 6, 2, 7, 3, 8, 4, 9, 5, 10)}\n")
// 测试用例 4: 奇数 7 个元素
println("=== 测试 4: 奇数 [1,2,3,4,5,6,7] ===")
val test4 = (1..7).map { TestModel(value = it) }
val result4 = testTransform(test4)
println("输入: ${test4.map { it.value }}")
println("输出: ${result4.map { it.value }}")
println("期望: [1, 5, 2, 6, 3, 7, 4]")
println("匹配: ${result4.map { it.value } == listOf(1, 5, 2, 6, 3, 7, 4)}\n")
// 测试用例 5: 边界情况 2 个元素
println("=== 测试 5: 边界 [1,2] ===")
val test5 = listOf(1, 2).map { TestModel(value = it) }
val result5 = testTransform(test5)
println("输入: ${test5.map { it.value }}")
println("输出: ${result5.map { it.value }}")
println("期望: [1, 2]")
println("匹配: ${result5.map { it.value } == listOf(1, 2)}\n")
// 测试用例 6: 边界情况 1 个元素
println("=== 测试 6: 边界 [1] ===")
val test6 = listOf(1).map { TestModel(value = it) }
val result6 = testTransform(test6)
println("输入: ${test6.map { it.value }}")
println("输出: ${result6.map { it.value }}")
println("期望: [1]")
println("匹配: ${result6.map { it.value } == listOf(1)}\n")
}