diff --git a/README.md b/README.md index 60a064c..58b5532 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ - если передан `Char` параметр, то объединение делается этим символом ## 3. Тестовая функция для пункта №2 -Напишите функцию-тест для второго пункта. Проверьте следующие условия для строк `str1` и `str2` и `str3`: +Напишите функцию-тест для первого пункта. Проверьте следующие условия для строк `str1` и `str2` и `str3`: - Если `Char` не передан, ваша функция должна вернуть: `str1 str2 str3` - Если `Char` задан как `,`, ваша функция должна вернуть: `str1,str2,str3` diff --git a/build.gradle b/build.gradle index 0d54c35..96f7492 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.jetbrains.kotlin.jvm' version '2.2.10' + id 'org.jetbrains.kotlin.jvm' version '1.9.10' } test { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8228988..8b7a9bf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Oct 09 12:41:49 CEST 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/kotlin/ru/otus/homework/MyFunctions.kt b/src/main/kotlin/ru/otus/homework/MyFunctions.kt new file mode 100644 index 0000000..a251b4f --- /dev/null +++ b/src/main/kotlin/ru/otus/homework/MyFunctions.kt @@ -0,0 +1,39 @@ +package ru.otus.homework + +import java.time.LocalDate + +fun sum(first: Int, second: Int): Int { + return first + second +} + +fun sum(first: String, second: String, ch: String = " " ): String { + if (first.isEmpty() == true) + return second + return first + ch + second +} + +fun FirstFunction(n1: Int, n2: Int, vararg params: Int): Int { + var nRes = sum(n1, n2) + params.forEach({nRes = sum(nRes, it)}) + return nRes +} + +fun SecondFunction(ch: Char = ' ', vararg params: String): String { + // Порядок изменить нельзя. vararg всегда должены быть после типизированных параметров. + var sRes = "" + params.forEach { sRes = sum(sRes, it, ch.toString() ) } + return sRes +} + +fun MyLoop() { + for (i in 0 until 10) { + Thread.sleep(100) + } +} + +fun Meashuring( op: () -> Unit ) { + println("Begin: ${System.currentTimeMillis().toString()}") + op() + println("End: ${System.currentTimeMillis().toString()}") +} + diff --git a/src/test/kotlin/ru/otus/homework/TestHomeWork.kt b/src/test/kotlin/ru/otus/homework/TestHomeWork.kt new file mode 100644 index 0000000..acadbcc --- /dev/null +++ b/src/test/kotlin/ru/otus/homework/TestHomeWork.kt @@ -0,0 +1,27 @@ +package ru.otus.homework + +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Test + +class TestHomeWork { + @Test + fun TestMyWork1() { + Assertions.assertEquals( + 6, + FirstFunction(1, 2, 3) + ) + } + + @Test + fun TestMyWork2() { + Assertions.assertEquals( + "1,2,3", + SecondFunction(',', "1", "2", "3") + ) + } + + @Test + fun TestMyWork3() { + Meashuring(::MyLoop) + } +}