// 测试列表转换逻辑 data class TestModel(var deviceId: String = "", val value: Int) fun testTransform(tempList: List): List { val list = mutableListOf() 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") }