1+ using System ;
2+ using System . Runtime . InteropServices ;
3+ using System . Diagnostics ;
4+ using RunnerWorld . wit . imports . test . records ;
5+ using RunnerWorld ;
6+
7+ public class Program {
8+ public static void Main ( )
9+ {
10+ {
11+ var results = ToTestInterop . MultipleResults ( ) ;
12+ Debug . Assert ( results . Item1 == 4 ) ;
13+ Debug . Assert ( results . Item2 == 5 ) ;
14+ }
15+
16+ ( byte , uint ) input = ( 1 , 2 ) ;
17+ ( uint , byte ) output = ToTestInterop . SwapTuple ( input ) ;
18+ Debug . Assert ( output . Item1 == 2 ) ;
19+ Debug . Assert ( output . Item2 == 1 ) ;
20+
21+ Debug . Assert ( ToTestInterop . RoundtripFlags1 ( IToTest . F1 . A ) == IToTest . F1 . A ) ;
22+ Debug . Assert ( ToTestInterop . RoundtripFlags1 ( 0 ) == 0 ) ;
23+ Debug . Assert ( ToTestInterop . RoundtripFlags1 ( IToTest . F1 . B ) == IToTest . F1 . B ) ;
24+ Debug . Assert ( ToTestInterop . RoundtripFlags1 ( IToTest . F1 . A | IToTest . F1 . B ) == ( IToTest . F1 . A | IToTest . F1 . B ) ) ;
25+
26+ Debug . Assert ( ToTestInterop . RoundtripFlags2 ( IToTest . F2 . C ) == IToTest . F2 . C ) ;
27+ Debug . Assert ( ToTestInterop . RoundtripFlags2 ( 0 ) == 0 ) ;
28+ Debug . Assert ( ToTestInterop . RoundtripFlags2 ( IToTest . F2 . D ) == IToTest . F2 . D ) ;
29+ Debug . Assert ( ToTestInterop . RoundtripFlags2 ( IToTest . F2 . C | IToTest . F2 . E ) == ( IToTest . F2 . C | IToTest . F2 . E ) ) ;
30+
31+ {
32+ var result = ToTestInterop . RoundtripFlags3 ( IToTest . Flag8 . B0 , IToTest . Flag16 . B1 ,
33+ IToTest . Flag32 . B2 ) ;
34+ Debug . Assert ( result . Item1 == IToTest . Flag8 . B0 ) ;
35+ Debug . Assert ( result . Item2 == IToTest . Flag16 . B1 ) ;
36+ Debug . Assert ( result . Item3 == IToTest . Flag32 . B2 ) ;
37+ }
38+
39+ {
40+ IToTest . R1 inputRecord = new ( 8 , 0 ) ;
41+ var result = ToTestInterop . RoundtripRecord1 ( inputRecord ) ;
42+ Debug . Assert ( result . a == 8 ) ;
43+ Debug . Assert ( result . b == 0 ) ;
44+ }
45+
46+ {
47+ IToTest . R1 inputRecord = new ( 0 , IToTest . F1 . A | IToTest . F1 . B ) ;
48+
49+ var result = ToTestInterop . RoundtripRecord1 ( inputRecord ) ;
50+ Debug . Assert ( result . a == 0 ) ;
51+ Debug . Assert ( result . b == ( IToTest . F1 . A | IToTest . F1 . B ) ) ;
52+ }
53+
54+ {
55+ var result = ToTestInterop . Tuple1 ( 1 ) ;
56+ Debug . Assert ( result == 1 ) ;
57+ }
58+ }
59+ }
0 commit comments