@@ -6,18 +6,22 @@ import JavApi
66final class LStXML2CodeTests : XCTestCase {
77
88 func testAll ( ) throws {
9- try self . _testBMFSample ( ) // Coverage: 49,5%
10- try self . _testKRV1 ( ) // Coverage: 49,7%
11- try self . _testKRV2 ( ) // Coverage: 50,1%
12- try self . _testAJAHR1KRV2 ( ) // Coverage: 52,2%
9+ try self . testBMFSample ( ) // Coverage: 49,5%
10+ try self . testKRV1 ( ) // Coverage: 49,7%
11+ try self . testKRV2 ( ) // Coverage: 50,1%
12+ try self . testAJAHR1KRV2 ( ) // Coverage: 52,2%
13+ try self . testSTKL3 ( ) // Coverage: 53,3%
14+ try self . testSTKL5PVS1PVZ1 ( ) // Coverage: 58,4%
15+ try self . testSTKL5PVS0PVZ1 ( ) // Coverage: 58,4%
16+ try self . testSTKL6PVS1PVZ0 ( ) // Coverage: 58,7%
1317 /*
1418 */
1519 }
1620
1721 /// Dieser Test beinhaltet das Beispiel von der Webseite [Eingangsinterface des BMF Steuerrechner](https://www.bmf-steuerrechner.de/interface/einganginterface.xhtml)
1822 ///
1923 /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 50,6%
20- func _testBMFSample ( ) throws {
24+ func testBMFSample ( ) throws {
2125 let calculator = Lohnsteuer2023AbJuliBig ( LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
2226 calculator. MAIN ( )
2327 /*
@@ -65,7 +69,7 @@ final class LStXML2CodeTests: XCTestCase {
6569 }
6670
6771 /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 50,6%
68- func _testKRV0 ( ) throws {
72+ func testKRV0 ( ) throws {
6973 let calculator = Lohnsteuer2023AbJuliBig ( KRV: 0 , LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
7074 calculator. MAIN ( )
7175 /*
@@ -113,7 +117,7 @@ final class LStXML2CodeTests: XCTestCase {
113117 }
114118
115119 /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 50,6%
116- func _testKRV1 ( ) throws {
120+ func testKRV1 ( ) throws {
117121 let calculator = Lohnsteuer2023AbJuliBig ( KRV: 1 , LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
118122 calculator. MAIN ( )
119123 /*
@@ -162,7 +166,7 @@ final class LStXML2CodeTests: XCTestCase {
162166
163167
164168 /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 49,3%
165- func _testKRV2 ( ) throws {
169+ func testKRV2 ( ) throws {
166170 let calculator = Lohnsteuer2023AbJuliBig ( KRV: 2 , LZZ: 1 , RE4: java. math. BigDecimal ( 2500000 ) , STKL: 1 )
167171 calculator. MAIN ( )
168172 /*
@@ -212,7 +216,7 @@ final class LStXML2CodeTests: XCTestCase {
212216
213217 // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=1&RE4=250000000&STKL=1
214218 /// - Note: Code Coverage of Lohnsteuer2023AbJuliBig: 49,1%
215- func _testAJAHR1KRV2 ( ) throws {
219+ func testAJAHR1KRV2 ( ) throws {
216220 let calculator = Lohnsteuer2023AbJuliBig (
217221 AJAHR: 1 ,
218222 KRV: 2 ,
@@ -263,4 +267,161 @@ final class LStXML2CodeTests: XCTestCase {
263267 XCTAssertEqual ( calculator. WVFRBO, 0 )
264268 XCTAssertEqual ( calculator. WVFRBM, 0 )
265269 }
270+
271+
272+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=1&RE4=250000000&STKL=3
273+ func testSTKL3( ) throws {
274+ let calculator = Lohnsteuer2023AbJuliBig (
275+ AJAHR: 1 ,
276+ KRV: 2 ,
277+ LZZ: 1 ,
278+ RE4: java. math. BigDecimal ( 250000000 ) ,
279+ STKL: 3 )
280+ calculator. MAIN ( )
281+ /*
282+ print (
283+ """
284+ BK = \(calculator.BK)
285+ BKS = \(calculator.BKS)
286+ BKV = \(calculator.BKV)
287+ LSTLZZ = \(calculator.LSTLZZ)
288+ SOLZLZZ = \(calculator.SOLZLZZ)
289+ SOLZS = \(calculator.SOLZS)
290+ SOLZV = \(calculator.SOLZV)
291+ STS = \(calculator.STS)
292+ STV = \(calculator.STV)
293+ VKVLZZ = \(calculator.VKVLZZ)
294+ VKVSONST = \(calculator.VKVSONST)
295+ VFRB = \(calculator.VFRB)
296+ VFRBS1 = \(calculator.VFRBS1)
297+ VFRBS2 = \(calculator.VFRBS2)
298+ WVFRB = \(calculator.WVFRB)
299+ WVFRBO = \(calculator.WVFRBO)
300+ WVFRBM = \(calculator.WVFRBM)
301+ """)
302+ */
303+
304+ // must be set
305+ XCTAssertEqual ( calculator. VFRB, 123000 )
306+ XCTAssertEqual ( calculator. LSTLZZ, 108549400 )
307+ XCTAssertEqual ( calculator. WVFRB, 248267100 )
308+ XCTAssertEqual ( calculator. SOLZLZZ, 5970217 )
309+ // must be zero
310+ XCTAssertEqual ( calculator. BK, 0 )
311+ XCTAssertEqual ( calculator. BKS, 0 )
312+ XCTAssertEqual ( calculator. BKV, 0 )
313+ XCTAssertEqual ( calculator. SOLZS, 0 )
314+ XCTAssertEqual ( calculator. SOLZV, 0 )
315+ XCTAssertEqual ( calculator. STS, 0 )
316+ XCTAssertEqual ( calculator. STV, 0 )
317+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
318+ XCTAssertEqual ( calculator. VKVSONST, 0 )
319+ XCTAssertEqual ( calculator. VFRBS1, 0 )
320+ XCTAssertEqual ( calculator. VFRBS2, 0 )
321+ XCTAssertEqual ( calculator. WVFRBO, 0 )
322+ XCTAssertEqual ( calculator. WVFRBM, 0 )
323+ }
324+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=1&PVS=1&PVZ=1&RE4=250000000&STKL=5
325+ func testSTKL5PVS1PVZ1( ) throws {
326+ let calculator = Lohnsteuer2023AbJuliBig (
327+ AJAHR: 1 ,
328+ KRV: 2 ,
329+ LZZ: 1 ,
330+ RE4: java. math. BigDecimal ( 250000000 ) ,
331+ STKL: 5 )
332+
333+ calculator. PVS = 1
334+ calculator. PVZ = 1
335+
336+ calculator. MAIN ( )
337+
338+ // must be set
339+ XCTAssertEqual ( calculator. VFRB, 123000 )
340+ XCTAssertEqual ( calculator. LSTLZZ, 111137900 )
341+ XCTAssertEqual ( calculator. WVFRB, 248208700 )
342+ XCTAssertEqual ( calculator. SOLZLZZ, 6112584 )
343+ // must be zero
344+ XCTAssertEqual ( calculator. BK, 0 )
345+ XCTAssertEqual ( calculator. BKS, 0 )
346+ XCTAssertEqual ( calculator. BKV, 0 )
347+ XCTAssertEqual ( calculator. SOLZS, 0 )
348+ XCTAssertEqual ( calculator. SOLZV, 0 )
349+ XCTAssertEqual ( calculator. STS, 0 )
350+ XCTAssertEqual ( calculator. STV, 0 )
351+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
352+ XCTAssertEqual ( calculator. VKVSONST, 0 )
353+ XCTAssertEqual ( calculator. VFRBS1, 0 )
354+ XCTAssertEqual ( calculator. VFRBS2, 0 )
355+ XCTAssertEqual ( calculator. WVFRBO, 0 )
356+ XCTAssertEqual ( calculator. WVFRBM, 0 )
357+ }
358+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=1&PVS=0&PVZ=1&RE4=250000000&STKL=5
359+ func testSTKL5PVS0PVZ1( ) throws {
360+ let calculator = Lohnsteuer2023AbJuliBig (
361+ AJAHR: 1 ,
362+ KRV: 2 ,
363+ LZZ: 1 ,
364+ RE4: java. math. BigDecimal ( 250000000 ) ,
365+ STKL: 5 )
366+
367+ calculator. PVS = 0
368+ calculator. PVZ = 1
369+
370+ calculator. MAIN ( )
371+
372+ // must be set
373+ XCTAssertEqual ( calculator. VFRB, 123000 )
374+ XCTAssertEqual ( calculator. LSTLZZ, 111151400 )
375+ XCTAssertEqual ( calculator. WVFRB, 248238700 )
376+ XCTAssertEqual ( calculator. SOLZLZZ, 6113327 )
377+ // must be zero
378+ XCTAssertEqual ( calculator. BK, 0 )
379+ XCTAssertEqual ( calculator. BKS, 0 )
380+ XCTAssertEqual ( calculator. BKV, 0 )
381+ XCTAssertEqual ( calculator. SOLZS, 0 )
382+ XCTAssertEqual ( calculator. SOLZV, 0 )
383+ XCTAssertEqual ( calculator. STS, 0 )
384+ XCTAssertEqual ( calculator. STV, 0 )
385+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
386+ XCTAssertEqual ( calculator. VKVSONST, 0 )
387+ XCTAssertEqual ( calculator. VFRBS1, 0 )
388+ XCTAssertEqual ( calculator. VFRBS2, 0 )
389+ XCTAssertEqual ( calculator. WVFRBO, 0 )
390+ XCTAssertEqual ( calculator. WVFRBM, 0 )
391+ }
392+
393+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=1&PVS=1&PVZ=0&RE4=250000000&STKL=6
394+ func testSTKL6PVS1PVZ0( ) throws {
395+ let calculator = Lohnsteuer2023AbJuliBig (
396+ AJAHR: 1 ,
397+ KRV: 2 ,
398+ LZZ: 1 ,
399+ RE4: java. math. BigDecimal ( 250000000 ) ,
400+ STKL: 6 )
401+
402+ calculator. PVS = 1
403+ calculator. PVZ = 0
404+
405+ calculator. MAIN ( )
406+
407+ // must be set
408+ XCTAssertEqual ( calculator. LSTLZZ, 111207700 )
409+ XCTAssertEqual ( calculator. WVFRB, 248363800 )
410+ XCTAssertEqual ( calculator. SOLZLZZ, 6116423 )
411+ // must be zero
412+ XCTAssertEqual ( calculator. BK, 0 )
413+ XCTAssertEqual ( calculator. BKS, 0 )
414+ XCTAssertEqual ( calculator. BKV, 0 )
415+ XCTAssertEqual ( calculator. SOLZS, 0 )
416+ XCTAssertEqual ( calculator. SOLZV, 0 )
417+ XCTAssertEqual ( calculator. STS, 0 )
418+ XCTAssertEqual ( calculator. STV, 0 )
419+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
420+ XCTAssertEqual ( calculator. VKVSONST, 0 )
421+ XCTAssertEqual ( calculator. VFRB, 0 )
422+ XCTAssertEqual ( calculator. VFRBS1, 0 )
423+ XCTAssertEqual ( calculator. VFRBS2, 0 )
424+ XCTAssertEqual ( calculator. WVFRBO, 0 )
425+ XCTAssertEqual ( calculator. WVFRBM, 0 )
426+ }
266427}
0 commit comments