/* * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package test.utils import kotlin.test.* class LazyTest { @Test fun initializationCalledOnce() { var callCount = 0 val lazyInt = lazy { ++callCount } assertEquals(0, callCount) assertFalse(lazyInt.isInitialized()) assertEquals(1, lazyInt.value) assertEquals(1, callCount) assertTrue(lazyInt.isInitialized()) lazyInt.value assertEquals(1, callCount) } @Test fun alreadyInitialized() { val lazyInt = lazyOf(1) assertTrue(lazyInt.isInitialized()) assertEquals(1, lazyInt.value) } @Test fun lazyToString() { var callCount = 0 val lazyInt = lazy { ++callCount } assertNotEquals("1", lazyInt.toString()) assertEquals(0, callCount) assertEquals(1, lazyInt.value) assertEquals("1", lazyInt.toString()) assertEquals(1, callCount) } }