test: Kotlin syntax test file

This commit is contained in:
Filip Czaplicki 2020-10-04 22:14:58 +02:00 committed by David Peter
parent 3af7a6b082
commit 3aabed44ce
2 changed files with 170 additions and 0 deletions

View File

@ -0,0 +1,85 @@
import kotlin.math.*
data class Example(
 val name: String,
 val numbers: List<Int?>
)
fun interface JokeInterface {
 fun isFunny(): Boolean
}
abstract class AbstractJoke : JokeInterface {
 override fun isFunny() = false
 abstract fun content(): String
}
class Joke : AbstractJoke() {
 override fun isFunny(): Boolean {
 return true
 }
 override fun content(): String = "content of joke here, haha"
}
class DelegatedJoke(val joke: Joke) : JokeInterface by joke {
 val number: Long = 123L
 companion object {
 const val someConstant = "some constant text"
 }
}
object SomeSingleton
sealed class Shape {
 abstract fun area(): Double
}
data class Square(val sideLength: Double) : Shape() {
 override fun area(): Double = sideLength.pow(2)
}
object Point : Shape() {
 override fun area() = .0
}
class Circle(val radius: Double) : Shape() {
 override fun area(): Double {
 return PI * radius * radius
 }
}
fun String.extensionMethod() = "test"
fun main() {
 val name = """
 multiline
 string
 
 some numbers: 123123 42
 """.trimIndent()
 val example = Example(name = name, numbers = listOf(512, 42, null, -1))
 example.numbers
 .filterNotNull()
 .forEach { println(it) }
 setOf(Joke(), DelegatedJoke(Joke()).joke)
 .filter(JokeInterface::isFunny)
 .map(AbstractJoke::content)
 .forEachIndexed { index: Int, joke ->
 println("I heard a funny joke(#${index + 1}): $joke")
 }
 listOf(Square(12.3), Point, Circle(5.2))
 .associateWith(Shape::area)
 .toList()
 .sortedBy { it.second }
 .forEach {
 println("${it.first}: ${it.second}")
 }
 println("some string".extensionMethod())
 require(SomeSingleton::class.simpleName == "SomeSingletonName") { "something does not seem right..." }
}

View File

@ -0,0 +1,85 @@
import kotlin.math.*
data class Example(
val name: String,
val numbers: List<Int?>
)
fun interface JokeInterface {
fun isFunny(): Boolean
}
abstract class AbstractJoke : JokeInterface {
override fun isFunny() = false
abstract fun content(): String
}
class Joke : AbstractJoke() {
override fun isFunny(): Boolean {
return true
}
override fun content(): String = "content of joke here, haha"
}
class DelegatedJoke(val joke: Joke) : JokeInterface by joke {
val number: Long = 123L
companion object {
const val someConstant = "some constant text"
}
}
object SomeSingleton
sealed class Shape {
abstract fun area(): Double
}
data class Square(val sideLength: Double) : Shape() {
override fun area(): Double = sideLength.pow(2)
}
object Point : Shape() {
override fun area() = .0
}
class Circle(val radius: Double) : Shape() {
override fun area(): Double {
return PI * radius * radius
}
}
fun String.extensionMethod() = "test"
fun main() {
val name = """
multiline
string
some numbers: 123123 42
""".trimIndent()
val example = Example(name = name, numbers = listOf(512, 42, null, -1))
example.numbers
.filterNotNull()
.forEach { println(it) }
setOf(Joke(), DelegatedJoke(Joke()).joke)
.filter(JokeInterface::isFunny)
.map(AbstractJoke::content)
.forEachIndexed { index: Int, joke ->
println("I heard a funny joke(#${index + 1}): $joke")
}
listOf(Square(12.3), Point, Circle(5.2))
.associateWith(Shape::area)
.toList()
.sortedBy { it.second }
.forEach {
println("${it.first}: ${it.second}")
}
println("some string".extensionMethod())
require(SomeSingleton::class.simpleName == "SomeSingletonName") { "something does not seem right..." }
}