/
RoundScribbleProgressViewTest.kt
68 lines (58 loc) · 2.34 KB
/
RoundScribbleProgressViewTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.vlad1m1r.lemniscate.roulette.scribble
import android.os.Build
import androidx.test.platform.app.InstrumentationRegistry
import com.google.common.truth.Truth.assertThat
import org.mockito.kotlin.*
import com.vlad1m1r.lemniscate.testutils.TestConstants.DELTA
import com.vlad1m1r.lemniscate.testutils.isPeriodic
import com.vlad1m1r.lemniscate.testutils.setupDefaultMock
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import kotlin.math.PI
class RoundScribbleProgressViewTest {
private val view = mock<RoundScribbleProgressView>()
@Before
fun setUp() {
view.setupDefaultMock()
doCallRealMethod().whenever(view).radiusSum
doCallRealMethod().whenever(view).sizeFactor
}
@Test
fun getGraphX() {
assertThat(view.getGraphX(0.0f)).isWithin(DELTA).of(30.0f)
assertThat(view.getGraphX(0.1f)).isWithin(DELTA).of(30.589556f)
assertThat(view.getGraphX(0.5f)).isWithin(DELTA).of(39.26477f)
assertThat(view.getGraphX(1.0f)).isWithin(DELTA).of(28.14853f)
assertThat(view.getGraphX(PI.toFloat())).isWithin(DELTA).of(-50.0f)
assertThat(view.getGraphX(2.0f)).isWithin(DELTA).of(-15.190873f)
assertThat(view.getGraphX(2 * PI.toFloat())).isWithin(DELTA).of(30.0f)
}
@Test
fun getGraphY() {
assertThat(view.getGraphY(0.0f)).isWithin(DELTA).of(40.0f)
assertThat(view.getGraphY(0.1f)).isWithin(DELTA).of(35.905983f)
assertThat(view.getGraphY(0.5f)).isWithin(DELTA).of(26.010328f)
assertThat(view.getGraphY(1.0f)).isWithin(DELTA).of(29.180117f)
assertThat(view.getGraphY(PI.toFloat())).isWithin(DELTA).of(-40.0f)
assertThat(view.getGraphY(2.0f)).isWithin(DELTA).of(-26.539455f)
assertThat(view.getGraphY(2 * PI.toFloat())).isWithin(DELTA).of(40.0f)
}
@Test
fun isPeriodic() {
view.isPeriodic(2 * PI.toFloat())
}
}
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.P])
class RoundScribbleProgressViewHasHoleTest {
val context = InstrumentationRegistry.getInstrumentation().targetContext
private val view = RoundScribbleProgressView(context)
@Test
fun hasHoleDisabled() {
view.hasHole = true
assertThat(view.hasHole).isFalse()
}
}