From ba5449ce08c3229cdf077c6d7ac03be8a894dcab Mon Sep 17 00:00:00 2001 From: SOR <3272194354@qq.com> Date: Mon, 21 Sep 2026 15:36:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extend/TestLifecycleLoggerExtension.kt | 22 ++++++++++++ .../puzzles/extra/More strange variables.kt | 36 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/test/kotlin/io/github/sor2171/puzzles/extend/TestLifecycleLoggerExtension.kt create mode 100644 src/test/kotlin/io/github/sor2171/puzzles/extra/More strange variables.kt diff --git a/src/test/kotlin/io/github/sor2171/puzzles/extend/TestLifecycleLoggerExtension.kt b/src/test/kotlin/io/github/sor2171/puzzles/extend/TestLifecycleLoggerExtension.kt new file mode 100644 index 0000000..ba36072 --- /dev/null +++ b/src/test/kotlin/io/github/sor2171/puzzles/extend/TestLifecycleLoggerExtension.kt @@ -0,0 +1,22 @@ +package io.github.sor2171.puzzles.extend + +import org.junit.jupiter.api.extension.AfterAllCallback +import org.junit.jupiter.api.extension.BeforeAllCallback +import org.junit.jupiter.api.extension.ExtensionContext + +class TestLifecycleLoggerExtension : BeforeAllCallback, AfterAllCallback { + + override fun beforeAll(context: ExtensionContext) { + val testClassName = context.requiredTestClass.simpleName + println() + println("=== [START] $testClassName ===") + println() + } + + override fun afterAll(context: ExtensionContext) { + val testClassName = context.requiredTestClass.simpleName + println() + println("=== [ END ] $testClassName ===") + println() + } +} \ No newline at end of file diff --git a/src/test/kotlin/io/github/sor2171/puzzles/extra/More strange variables.kt b/src/test/kotlin/io/github/sor2171/puzzles/extra/More strange variables.kt new file mode 100644 index 0000000..84db253 --- /dev/null +++ b/src/test/kotlin/io/github/sor2171/puzzles/extra/More strange variables.kt @@ -0,0 +1,36 @@ +@file:SkipCompile(skip = true) +@file:Suppress("ClassName", "JoinDeclarationAndAssignment", "KotlinConstantConditions") + +package io.github.sor2171.puzzles.extra + +import io.github.sor2171.puzzles.annotation.SkipCompile +import org.junit.jupiter.api.Test + +/** + * 本关考察你对无符号数字的理解。 + */ +class `More strange variables` { + // write start 1 + + // write end 1 + + init { + a = 0xEEBAU + } + + @Test + fun puzzle() { + val b: Short + val c: Short + + // write start 2 + + // write end 2 + + println(a) + println(b) + a = b.toUInt() * 0x10000U + c.toUInt() + assert(a == 0xFFFFFFFFU) + println(a) + } +} \ No newline at end of file