File tree Expand file tree Collapse file tree 3 files changed +110
-0
lines changed
androidTest/java/com/readdle/swiftjava/sample
java/com/readdle/swiftjava/sample
swift/Sources/SampleAppCore/IssueTests Expand file tree Collapse file tree 3 files changed +110
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com.readdle.swiftjava.sample
2
+
3
+ import androidx.test.ext.junit.runners.AndroidJUnit4
4
+ import com.readdle.codegen.anotation.JavaSwift
5
+ import com.readdle.swiftjava.sample.SwiftEnvironment.Companion.initEnvironment
6
+ import org.junit.Assert
7
+ import org.junit.Before
8
+ import org.junit.Test
9
+ import org.junit.runner.RunWith
10
+
11
+ @RunWith(AndroidJUnit4 ::class )
12
+ class Issue31Tests {
13
+
14
+ @Before
15
+ fun setUp () {
16
+ System .loadLibrary(" SampleAppCore" )
17
+ JavaSwift .init ()
18
+ initEnvironment()
19
+ }
20
+
21
+ @Test
22
+ fun testValueTypeNanBug () {
23
+ val progress = Issue31TestProgress (elapsed = 8 , total = 8 )
24
+ Assert .assertNotEquals(Double .NaN , progress.percentage)
25
+ Assert .assertNotEquals(Double .NaN , progress.calculatePercentage())
26
+ }
27
+
28
+ @Test
29
+ fun testReferenceTypeNanBug () {
30
+ val progress = Issue31ReferenceTestProgress .init (elapsed = 8 , total = 8 )
31
+ Assert .assertNotEquals(Double .NaN , progress.percentage)
32
+ Assert .assertNotEquals(Double .NaN , progress.calculatePercentage())
33
+ }
34
+ }
Original file line number Diff line number Diff line change
1
+ package com.readdle.swiftjava.sample
2
+
3
+ import com.readdle.codegen.anotation.SwiftFunc
4
+ import com.readdle.codegen.anotation.SwiftGetter
5
+ import com.readdle.codegen.anotation.SwiftReference
6
+ import com.readdle.codegen.anotation.SwiftValue
7
+
8
+ @SwiftValue
9
+ data class Issue31TestProgress (
10
+ var elapsed : Int = 0 ,
11
+ var total : Int = 1
12
+ ) {
13
+ @get:SwiftGetter
14
+ val percentage: Double external get
15
+
16
+ @SwiftFunc
17
+ external fun calculatePercentage (): Double
18
+ }
19
+
20
+ @SwiftReference
21
+ class Issue31ReferenceTestProgress private constructor() {
22
+ // Swift JNI private native pointer
23
+ private val nativePointer = 0L
24
+
25
+ // Swift JNI release method
26
+ external fun release ()
27
+
28
+ @get:SwiftGetter
29
+ val percentage: Double external get
30
+
31
+ @SwiftFunc
32
+ external fun calculatePercentage (): Double
33
+
34
+ companion object {
35
+ @JvmStatic
36
+ @SwiftFunc(" init(elapsed:total:)" )
37
+ external fun init (elapsed : Int , total : Int ): Issue31ReferenceTestProgress
38
+ }
39
+ }
Original file line number Diff line number Diff line change
1
+ import Foundation
2
+
3
+ public struct Issue31TestProgress : Codable {
4
+ public let elapsed : Int
5
+ public let total : Int
6
+
7
+ public var percentage : Double {
8
+ return 1.0
9
+ }
10
+
11
+ public init ( elapsed: Int , total: Int ) {
12
+ self . elapsed = elapsed
13
+ self . total = total
14
+ }
15
+
16
+ public func calculatePercentage( ) -> Double {
17
+ return percentage
18
+ }
19
+ }
20
+
21
+ public class Issue31ReferenceTestProgress : Codable {
22
+ public let elapsed : Int
23
+ public let total : Int
24
+
25
+ public var percentage : Double {
26
+ return 1.0
27
+ }
28
+
29
+ public init ( elapsed: Int , total: Int ) {
30
+ self . elapsed = elapsed
31
+ self . total = total
32
+ }
33
+
34
+ public func calculatePercentage( ) -> Double {
35
+ return percentage
36
+ }
37
+ }
You can’t perform that action at this time.
0 commit comments