Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions src/main/kotlin/ru/otus/homework/functions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ fun main() {

val product = 2 by 2
println("Произведение: $product")

//Homework---
val f1result = function1(2, 3, 5, 2)
println(f1result)

val f2result = function2("Hello", "World", "Nice", "Day", char1 = '/')
println(f2result)

val list = arrayListOf<String>("Hello", "Good Morning", "Good Evening", "Good Day", "Good Night", "How are you?")
val f3result = function3('e', list, ::function4)
println(f3result)

}

infix fun Int.by(other: Int): Int = this * other
Expand Down
41 changes: 41 additions & 0 deletions src/main/kotlin/ru/otus/homework/homework.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package ru.otus.homework

import kotlin.system.measureTimeMillis


fun function1(int1: Int, int2: Int, vararg n: Int): Int {
var sum = int1 + int2

if (!n.isEmpty()) n.forEach { sum += it } else throw IllegalArgumentException()

return sum
}

fun function2(vararg s: String, char1: Char = ' '): String {
val sb = StringBuilder()

s.forEach { string -> sb.append(string).append(char1) }

return sb.toString()
}

fun function3(char: Char, list: ArrayList<String>, f: (Char, ArrayList<String>) -> List<String>): String {

val duration = measureTimeMillis {
f(char, list)
}

return ("Время выполнения = ${duration / 1000} секунд")
}

fun function4(char: Char, list: ArrayList<String>): List<String> {

val newArray = mutableListOf<String>()

list.forEach { string ->
if (string.contains(char)) newArray.add(string)
Thread.sleep(2000)
}

return newArray
}
7 changes: 7 additions & 0 deletions src/test/kotlin/ru/otus/homework/FunctionsTest.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ru.otus.homework

import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test

class FunctionsTest {
Expand All @@ -11,4 +12,10 @@ class FunctionsTest {
calculate(1, 2)
)
}

@Test
fun testFunction2(){
val expected = "Hello/World/Nice/Day/"
assertEquals(expected, function2("Hello", "World", "Nice", "Day", char1 = '/'))
}
}