From 2a83f96f78e519bbfb59cb21ef145eadb697ba02 Mon Sep 17 00:00:00 2001 From: annaksenova Date: Sun, 24 Aug 2025 16:30:29 +0300 Subject: [PATCH] Homework --- build.gradle | 4 ++ src/main/kotlin/ru/otus/homework/Homework.kt | 34 ++++++++++++++++ .../kotlin/ru/otus/homework/HomeworkTest.kt | 39 +++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 src/main/kotlin/ru/otus/homework/Homework.kt create mode 100644 src/test/kotlin/ru/otus/homework/HomeworkTest.kt diff --git a/build.gradle b/build.gradle index 0d54c35..3b86ab5 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,10 @@ plugins { id 'org.jetbrains.kotlin.jvm' version '2.2.10' } +dependencies { + testImplementation("org.junit.jupiter:junit-jupiter:5.9.2") +} + test { useJUnitPlatform() } diff --git a/src/main/kotlin/ru/otus/homework/Homework.kt b/src/main/kotlin/ru/otus/homework/Homework.kt new file mode 100644 index 0000000..9e28a74 --- /dev/null +++ b/src/main/kotlin/ru/otus/homework/Homework.kt @@ -0,0 +1,34 @@ +package ru.otus.homework + +//region Задание 1 +fun calc(n1: Int, n2: Int, vararg other: Int): Int { + val sum = n1 + n2 + other.sum() + return sum +} +//endregion + +//region Задание 2 +fun join(vararg string: String, separator: Char = ' '): String = + string.joinToString(separator = separator.toString()) +//endregion + +//region Задание 4 +fun main() { + val ms = runTime { longFunction() } + println("Время выполнения — $ms милисекунд") +} + +fun runTime(block: () -> Unit): Long { + val start = System.currentTimeMillis() + block() + val end = System.currentTimeMillis() + val time = end - start + return time +} + +fun longFunction() { + repeat(1000000000) { i -> + if (i % 500000000 == 0) println("$i") + } +} +//endregion \ No newline at end of file diff --git a/src/test/kotlin/ru/otus/homework/HomeworkTest.kt b/src/test/kotlin/ru/otus/homework/HomeworkTest.kt new file mode 100644 index 0000000..eaba582 --- /dev/null +++ b/src/test/kotlin/ru/otus/homework/HomeworkTest.kt @@ -0,0 +1,39 @@ +package ru.otus.homework + +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Test + + +class HomeworkTest { + //region Тест для задания 1 + @Test + fun calcTest1() { + val actual = calc(1, 2) + val expected = 3 + Assertions.assertEquals(expected, actual) + } + + @Test + fun calcTest2() { + val actual = calc(1, 2, 3, 4) + val expected = 10 + Assertions.assertEquals(expected, actual) + } + //endregion + + //region Задание 3 + @Test + fun `no separator - use default`() { + val actual = join("Я – инженер","и моя голова сразу забывает бесполезные слова. Хуяк-хуяк", "и в продакшн.") + val expected = "Я – инженер и моя голова сразу забывает бесполезные слова. Хуяк-хуяк и в продакшн." + Assertions.assertEquals(expected, actual) + } + + @Test + fun `has separator - use the separator`() { + val actual = join("Я – инженер","и моя голова сразу забывает бесполезные слова. Хуяк-хуяк", "и в продакшн.", separator =',') + val expected = "Я – инженер,и моя голова сразу забывает бесполезные слова. Хуяк-хуяк,и в продакшн." + Assertions.assertEquals(expected, actual) + } + //endregion +}