Skip to content

Instantly share code, notes, and snippets.

@eutkin
Created October 16, 2021 18:20
Show Gist options
  • Save eutkin/3522fcce622451d70dcf21e5526714d3 to your computer and use it in GitHub Desktop.
Save eutkin/3522fcce622451d70dcf21e5526714d3 to your computer and use it in GitHub Desktop.
import java.util.concurrent.ThreadLocalRandom
fun generateTask() {
fun generateTask(param1: Any, param2: Any, compareOperator: String): String =
"""
Необходимо написать функцию, которая принимает два аргумента с типами ${param1::class.simpleName}
и ${param2::class.simpleName} и возвращает тот аргумент, который $compareOperator.
Далее, нужно функцию вызвать с аргументами $param1 и $param2 и вывести значение на экран в
следующем формате:
Result: <результат работы функции>
Например:
Result: $param1
"""
val operators = mutableListOf("меньше", "больше", "равен", "больше или равен", "меньше или равен")
val types = mutableListOf("String", "Int", "Double", "Long")
fun generateValueByType(type: String, random: ThreadLocalRandom): Any = when (type) {
"Int" -> random.nextInt(0, 10)
"String" -> {
val result = ByteArray(10)
random.nextBytes(result)
result.joinToString(separator = "") { eachByte -> "%02x".format(eachByte) }
}
"Double" -> random.nextDouble(0.0, 10.0)
"Long" -> random.nextLong(0, 10)
else -> random.nextBoolean()
}
for (i in 1..50) {
val type = types.shuffled()[0]
val random = ThreadLocalRandom.current()
val param1 = generateValueByType(type, random)
val param2 = generateValueByType(type, random)
val operator = operators.shuffled(random)[0]
val task = generateTask(param1, param2, operator)
println(task)
println("-".repeat(100))
}
}
generateTask()
run {
fun function(param1: Double, param2: Double): Double {
return if (param1 > param2) {
param1
} else {
param2
}
}
val result = function(8.10000491806535, 2.5123193736652905)
println("Result: $result")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment