- 将应用包名从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接口实例分离管理
77 lines
3.2 KiB
Kotlin
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")
|
|
}
|