@@ -4,83 +4,261 @@ import XCTest
4
4
import JavApi
5
5
6
6
final class LStXML2CodeTests : XCTestCase {
7
- func testExample( ) throws {
8
- let calculator = Lohnsteuer2023AbJuliBig ( LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
9
- calculator. MAIN ( )
10
- /*
11
- print (
12
- """
13
- BK = \(calculator.BK)
14
- BKS = \(calculator.BKS)
15
- BKV = \(calculator.BKV)
16
- LSTLZZ = \(calculator.LSTLZZ)
17
- SOLZLZZ = \(calculator.SOLZLZZ)
18
- SOLZS = \(calculator.SOLZS)
19
- SOLZV = \(calculator.SOLZV)
20
- STS = \(calculator.STS)
21
- STV = \(calculator.STV)
22
- VKVLZZ = \(calculator.VKVLZZ)
23
- VKVSONST = \(calculator.VKVSONST)
24
- VFRB = \(calculator.VFRB)
25
- VFRBS1 = \(calculator.VFRBS1)
26
- VFRBS2 = \(calculator.VFRBS2)
27
- WVFRB = \(calculator.WVFRB)
28
- WVFRBO = \(calculator.WVFRBO)
29
- WVFRBM = \(calculator.WVFRBM)
30
- """)
31
- */
32
-
33
- // must be set
34
- XCTAssertEqual ( calculator. VFRB, 123000 )
35
- XCTAssertEqual ( calculator. LSTLZZ, 176700 )
36
- XCTAssertEqual ( calculator. WVFRB, 834700 )
37
- // must be zero
38
- XCTAssertEqual ( calculator. BK, 0 )
39
- XCTAssertEqual ( calculator. BKS, 0 )
40
- XCTAssertEqual ( calculator. BKV, 0 )
41
- XCTAssertEqual ( calculator. SOLZLZZ, 0 )
42
- XCTAssertEqual ( calculator. SOLZS, 0 )
43
- XCTAssertEqual ( calculator. SOLZV, 0 )
44
- XCTAssertEqual ( calculator. STS, 0 )
45
- XCTAssertEqual ( calculator. STV, 0 )
46
- XCTAssertEqual ( calculator. VKVLZZ, 0 )
47
- XCTAssertEqual ( calculator. VKVSONST, 0 )
48
- XCTAssertEqual ( calculator. VFRBS1, 0 )
49
- XCTAssertEqual ( calculator. VFRBS2, 0 )
50
- XCTAssertEqual ( calculator. WVFRBO, 0 )
51
- XCTAssertEqual ( calculator. WVFRBM, 0 )
52
- }
7
+
8
+ func testAll ( ) throws {
9
+ try self . _testBMFSample ( ) // Coverage: 50,6%
10
+ try self . _testKRV1 ( ) // Coverage: 51,0%
11
+ try self . _testKRV2 ( ) // Coverage: 51,0%
12
+ try self . _testAJAHR1KRV2 ( ) // Coverage: 52,2%
13
+ }
14
+
15
+ /// Dieser Test beinhaltet das Beispiel von der Webseite [Eingangsinterface des BMF Steuerrechner](https://www.bmf-steuerrechner.de/interface/einganginterface.xhtml)
16
+ ///
17
+ /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 50,6%
18
+ func _testBMFSample( ) throws {
19
+ let calculator = Lohnsteuer2023AbJuliBig ( LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
20
+ calculator. MAIN ( )
21
+ /*
22
+ print (
23
+ """
24
+ BK = \(calculator.BK)
25
+ BKS = \(calculator.BKS)
26
+ BKV = \(calculator.BKV)
27
+ LSTLZZ = \(calculator.LSTLZZ)
28
+ SOLZLZZ = \(calculator.SOLZLZZ)
29
+ SOLZS = \(calculator.SOLZS)
30
+ SOLZV = \(calculator.SOLZV)
31
+ STS = \(calculator.STS)
32
+ STV = \(calculator.STV)
33
+ VKVLZZ = \(calculator.VKVLZZ)
34
+ VKVSONST = \(calculator.VKVSONST)
35
+ VFRB = \(calculator.VFRB)
36
+ VFRBS1 = \(calculator.VFRBS1)
37
+ VFRBS2 = \(calculator.VFRBS2)
38
+ WVFRB = \(calculator.WVFRB)
39
+ WVFRBO = \(calculator.WVFRBO)
40
+ WVFRBM = \(calculator.WVFRBM)
41
+ """)
42
+ */
43
+
44
+ // must be set
45
+ XCTAssertEqual ( calculator. VFRB, 123000 )
46
+ XCTAssertEqual ( calculator. LSTLZZ, 176700 )
47
+ XCTAssertEqual ( calculator. WVFRB, 834700 )
48
+ // must be zero
49
+ XCTAssertEqual ( calculator. BK, 0 )
50
+ XCTAssertEqual ( calculator. BKS, 0 )
51
+ XCTAssertEqual ( calculator. BKV, 0 )
52
+ XCTAssertEqual ( calculator. SOLZLZZ, 0 )
53
+ XCTAssertEqual ( calculator. SOLZS, 0 )
54
+ XCTAssertEqual ( calculator. SOLZV, 0 )
55
+ XCTAssertEqual ( calculator. STS, 0 )
56
+ XCTAssertEqual ( calculator. STV, 0 )
57
+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
58
+ XCTAssertEqual ( calculator. VKVSONST, 0 )
59
+ XCTAssertEqual ( calculator. VFRBS1, 0 )
60
+ XCTAssertEqual ( calculator. VFRBS2, 0 )
61
+ XCTAssertEqual ( calculator. WVFRBO, 0 )
62
+ XCTAssertEqual ( calculator. WVFRBM, 0 )
63
+ }
64
+
65
+ /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 50,6%
66
+ func _testKRV0( ) throws {
67
+ let calculator = Lohnsteuer2023AbJuliBig ( KRV: 0 , LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
68
+ calculator. MAIN ( )
69
+ /*
70
+ print (
71
+ """
72
+ BK = \(calculator.BK)
73
+ BKS = \(calculator.BKS)
74
+ BKV = \(calculator.BKV)
75
+ LSTLZZ = \(calculator.LSTLZZ)
76
+ SOLZLZZ = \(calculator.SOLZLZZ)
77
+ SOLZS = \(calculator.SOLZS)
78
+ SOLZV = \(calculator.SOLZV)
79
+ STS = \(calculator.STS)
80
+ STV = \(calculator.STV)
81
+ VKVLZZ = \(calculator.VKVLZZ)
82
+ VKVSONST = \(calculator.VKVSONST)
83
+ VFRB = \(calculator.VFRB)
84
+ VFRBS1 = \(calculator.VFRBS1)
85
+ VFRBS2 = \(calculator.VFRBS2)
86
+ WVFRB = \(calculator.WVFRB)
87
+ WVFRBO = \(calculator.WVFRBO)
88
+ WVFRBM = \(calculator.WVFRBM)
89
+ """)
90
+ */
91
+
92
+ // must be set
93
+ XCTAssertEqual ( calculator. VFRB, 123000 )
94
+ XCTAssertEqual ( calculator. LSTLZZ, 176700 )
95
+ XCTAssertEqual ( calculator. WVFRB, 834700 )
96
+ // must be zero
97
+ XCTAssertEqual ( calculator. BK, 0 )
98
+ XCTAssertEqual ( calculator. BKS, 0 )
99
+ XCTAssertEqual ( calculator. BKV, 0 )
100
+ XCTAssertEqual ( calculator. SOLZLZZ, 0 )
101
+ XCTAssertEqual ( calculator. SOLZS, 0 )
102
+ XCTAssertEqual ( calculator. SOLZV, 0 )
103
+ XCTAssertEqual ( calculator. STS, 0 )
104
+ XCTAssertEqual ( calculator. STV, 0 )
105
+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
106
+ XCTAssertEqual ( calculator. VKVSONST, 0 )
107
+ XCTAssertEqual ( calculator. VFRBS1, 0 )
108
+ XCTAssertEqual ( calculator. VFRBS2, 0 )
109
+ XCTAssertEqual ( calculator. WVFRBO, 0 )
110
+ XCTAssertEqual ( calculator. WVFRBM, 0 )
111
+ }
112
+
113
+ /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 50,6%
114
+ func _testKRV1( ) throws {
115
+ let calculator = Lohnsteuer2023AbJuliBig ( KRV: 1 , LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
116
+ calculator. MAIN ( )
117
+ /*
118
+ print (
119
+ """
120
+ BK = \(calculator.BK)
121
+ BKS = \(calculator.BKS)
122
+ BKV = \(calculator.BKV)
123
+ LSTLZZ = \(calculator.LSTLZZ)
124
+ SOLZLZZ = \(calculator.SOLZLZZ)
125
+ SOLZS = \(calculator.SOLZS)
126
+ SOLZV = \(calculator.SOLZV)
127
+ STS = \(calculator.STS)
128
+ STV = \(calculator.STV)
129
+ VKVLZZ = \(calculator.VKVLZZ)
130
+ VKVSONST = \(calculator.VKVSONST)
131
+ VFRB = \(calculator.VFRB)
132
+ VFRBS1 = \(calculator.VFRBS1)
133
+ VFRBS2 = \(calculator.VFRBS2)
134
+ WVFRB = \(calculator.WVFRB)
135
+ WVFRBO = \(calculator.WVFRBO)
136
+ WVFRBM = \(calculator.WVFRBM)
137
+ """)
138
+ */
139
+
140
+ // must be set
141
+ XCTAssertEqual ( calculator. VFRB, 123000 )
142
+ XCTAssertEqual ( calculator. LSTLZZ, 176700 )
143
+ XCTAssertEqual ( calculator. WVFRB, 834700 )
144
+ // must be zero
145
+ XCTAssertEqual ( calculator. BK, 0 )
146
+ XCTAssertEqual ( calculator. BKS, 0 )
147
+ XCTAssertEqual ( calculator. BKV, 0 )
148
+ XCTAssertEqual ( calculator. SOLZLZZ, 0 )
149
+ XCTAssertEqual ( calculator. SOLZS, 0 )
150
+ XCTAssertEqual ( calculator. SOLZV, 0 )
151
+ XCTAssertEqual ( calculator. STS, 0 )
152
+ XCTAssertEqual ( calculator. STV, 0 )
153
+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
154
+ XCTAssertEqual ( calculator. VKVSONST, 0 )
155
+ XCTAssertEqual ( calculator. VFRBS1, 0 )
156
+ XCTAssertEqual ( calculator. VFRBS2, 0 )
157
+ XCTAssertEqual ( calculator. WVFRBO, 0 )
158
+ XCTAssertEqual ( calculator. WVFRBM, 0 )
159
+ }
160
+
161
+
162
+ /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 49,3%
163
+ func _testKRV2( ) throws {
164
+ let calculator = Lohnsteuer2023AbJuliBig ( KRV: 2 , LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
165
+ calculator. MAIN ( )
166
+ /*
167
+ print (
168
+ """
169
+ BK = \(calculator.BK)
170
+ BKS = \(calculator.BKS)
171
+ BKV = \(calculator.BKV)
172
+ LSTLZZ = \(calculator.LSTLZZ)
173
+ SOLZLZZ = \(calculator.SOLZLZZ)
174
+ SOLZS = \(calculator.SOLZS)
175
+ SOLZV = \(calculator.SOLZV)
176
+ STS = \(calculator.STS)
177
+ STV = \(calculator.STV)
178
+ VKVLZZ = \(calculator.VKVLZZ)
179
+ VKVSONST = \(calculator.VKVSONST)
180
+ VFRB = \(calculator.VFRB)
181
+ VFRBS1 = \(calculator.VFRBS1)
182
+ VFRBS2 = \(calculator.VFRBS2)
183
+ WVFRB = \(calculator.WVFRB)
184
+ WVFRBO = \(calculator.WVFRBO)
185
+ WVFRBM = \(calculator.WVFRBM)
186
+ """)
187
+ */
188
+
189
+ // must be set
190
+ XCTAssertEqual ( calculator. VFRB, 123000 )
191
+ XCTAssertEqual ( calculator. LSTLZZ, 236400 )
192
+ XCTAssertEqual ( calculator. WVFRB, 1067200 )
193
+ // must be zero
194
+ XCTAssertEqual ( calculator. BK, 0 )
195
+ XCTAssertEqual ( calculator. BKS, 0 )
196
+ XCTAssertEqual ( calculator. BKV, 0 )
197
+ XCTAssertEqual ( calculator. SOLZLZZ, 0 )
198
+ XCTAssertEqual ( calculator. SOLZS, 0 )
199
+ XCTAssertEqual ( calculator. SOLZV, 0 )
200
+ XCTAssertEqual ( calculator. STS, 0 )
201
+ XCTAssertEqual ( calculator. STV, 0 )
202
+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
203
+ XCTAssertEqual ( calculator. VKVSONST, 0 )
204
+ XCTAssertEqual ( calculator. VFRBS1, 0 )
205
+ XCTAssertEqual ( calculator. VFRBS2, 0 )
206
+ XCTAssertEqual ( calculator. WVFRBO, 0 )
207
+ XCTAssertEqual ( calculator. WVFRBM, 0 )
208
+ }
209
+
210
+
211
+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=1&RE4=250000000&STKL=1
212
+ /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 49,1%
213
+ func _testAJAHR1KRV2( ) throws {
214
+ let calculator = Lohnsteuer2023AbJuliBig (
215
+ AJAHR: 1 ,
216
+ KRV: 2 ,
217
+ LZZ: 1 ,
218
+ RE4: java. math. BigDecimal ( 250000000 ) ,
219
+ STKL: 1 )
220
+ calculator. MAIN ( )
221
+ /*
222
+ print (
223
+ """
224
+ BK = \(calculator.BK)
225
+ BKS = \(calculator.BKS)
226
+ BKV = \(calculator.BKV)
227
+ LSTLZZ = \(calculator.LSTLZZ)
228
+ SOLZLZZ = \(calculator.SOLZLZZ)
229
+ SOLZS = \(calculator.SOLZS)
230
+ SOLZV = \(calculator.SOLZV)
231
+ STS = \(calculator.STS)
232
+ STV = \(calculator.STV)
233
+ VKVLZZ = \(calculator.VKVLZZ)
234
+ VKVSONST = \(calculator.VKVSONST)
235
+ VFRB = \(calculator.VFRB)
236
+ VFRBS1 = \(calculator.VFRBS1)
237
+ VFRBS2 = \(calculator.VFRBS2)
238
+ WVFRB = \(calculator.WVFRB)
239
+ WVFRBO = \(calculator.WVFRBO)
240
+ WVFRBM = \(calculator.WVFRBM)
241
+ """)
242
+ */
243
+
244
+ // must be set
245
+ XCTAssertEqual ( calculator. VFRB, 123000 )
246
+ XCTAssertEqual ( calculator. LSTLZZ, 110380200 )
247
+ XCTAssertEqual ( calculator. WVFRB, 248267100 )
248
+ XCTAssertEqual ( calculator. SOLZLZZ, 6070911 )
249
+ // must be zero
250
+ XCTAssertEqual ( calculator. BK, 0 )
251
+ XCTAssertEqual ( calculator. BKS, 0 )
252
+ XCTAssertEqual ( calculator. BKV, 0 )
253
+ XCTAssertEqual ( calculator. SOLZS, 0 )
254
+ XCTAssertEqual ( calculator. SOLZV, 0 )
255
+ XCTAssertEqual ( calculator. STS, 0 )
256
+ XCTAssertEqual ( calculator. STV, 0 )
257
+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
258
+ XCTAssertEqual ( calculator. VKVSONST, 0 )
259
+ XCTAssertEqual ( calculator. VFRBS1, 0 )
260
+ XCTAssertEqual ( calculator. VFRBS2, 0 )
261
+ XCTAssertEqual ( calculator. WVFRBO, 0 )
262
+ XCTAssertEqual ( calculator. WVFRBM, 0 )
263
+ }
53
264
}
54
-
55
- /* result of
56
- http://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&LZZ=1&RE4=2500000&STKL=1
57
-
58
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
59
- <lohnsteuer jahr="2023">
60
- <information>Die Berechnung ist nach den PAP 2023 (ab Juli) erfolgt. Die Berechnung dient lediglich der Qualitätssicherung. Die Externe Schnittstelle des Lohn- und Einkommensteuerrechner ist also nur für die Überprüfung ihrer Rechnung bestimmt und nicht dazu bestimmt, die Berechnung über ihn abzuwickeln.</information>
61
- <eingaben>
62
- <eingabe name="LZZ" value="1" status="ok"/>
63
- <eingabe name="RE4" value="2500000" status="ok"/>
64
- <eingabe name="STKL" value="1" status="ok"/>
65
- </eingaben>
66
- <ausgaben>
67
- <ausgabe name="BK" value="0" type="STANDARD"/>
68
- <ausgabe name="BKS" value="0" type="STANDARD"/>
69
- <ausgabe name="BKV" value="0" type="STANDARD"/>
70
- <ausgabe name="LSTLZZ" value="176700" type="STANDARD"/>
71
- <ausgabe name="SOLZLZZ" value="0" type="STANDARD"/>
72
- <ausgabe name="SOLZS" value="0" type="STANDARD"/>
73
- <ausgabe name="SOLZV" value="0" type="STANDARD"/>
74
- <ausgabe name="STS" value="0" type="STANDARD"/>
75
- <ausgabe name="STV" value="0" type="STANDARD"/>
76
- <ausgabe name="VKVLZZ" value="0" type="STANDARD"/>
77
- <ausgabe name="VKVSONST" value="0" type="STANDARD"/>
78
- <ausgabe name="VFRB" value="123000" type="DBA"/>
79
- <ausgabe name="VFRBS1" value="0" type="DBA"/>
80
- <ausgabe name="VFRBS2" value="0" type="DBA"/>
81
- <ausgabe name="WVFRB" value="834700" type="DBA"/>
82
- <ausgabe name="WVFRBO" value="0" type="DBA"/>
83
- <ausgabe name="WVFRBM" value="0" type="DBA"/>
84
- </ausgaben>
85
- </lohnsteuer>
86
- */
0 commit comments