val data = object {
val name = "value"
val nested = object {
val nestedName = "nestedValue"
}
val arrayOfSingleObject = arrayOf(
object {
val x = 42
}
)
val arrayOfTwoObjects = arrayOf(
object {
val x = 42
},
object {
val x = 99
}
)
val arrayOfSameTypes = arrayOf("Hello", "Worlds")
val arrayOfAny = arrayOf("Banana", BigDecimal(100))
}
assertEquals("value", data.name)
assertEquals("nestedValue", data.nested.nestedName)
assertEquals(42, data.arrayOfSingleObject[0].x)
// assertEquals(42, data.arrayOfTwoObjects[0].x)
// Unresolved reference x
assertNotNull(data.arrayOfTwoObjects[0].toString())
assertEquals(5, data.arrayOfSameTypes[0].length)
assertEquals(6, data.arrayOfSameTypes[1].length)
assertEquals("Banana", data.arrayOfAny[0].toString())
assertEquals("100", data.arrayOfAny[1].toString())
assertEquals(100, (data.arrayOfAny[1] as BigDecimal).toInt())
assertEquals(100, data.arrayOfAny[1].castAs<BigDecimal>().toInt())