@@ -6,6 +6,7 @@ import JavApi
66final class LStXML2CodeTests : XCTestCase {
77
88 func testAll ( ) throws {
9+ // only business object code coverage
910 try self . testBMFSample ( ) // Coverage: 49,5%
1011 try self . testKRV1 ( ) // Coverage: 49,7%
1112 try self . testKRV2 ( ) // Coverage: 50,1%
@@ -15,7 +16,12 @@ final class LStXML2CodeTests: XCTestCase {
1516 try self . testSTKL5PVS0PVZ1 ( ) // Coverage: 58,4%
1617 try self . testSTKL6PVS1PVZ0 ( ) // Coverage: 58,7%
1718 try self . testSTKL4LZZ0PVS1PVZ1 ( )
18- try self . testSTKL2LZZ0PVS1 ( )
19+ try self . testSTKL2LZZ0PVS1 ( ) // Coverage: 63,2%
20+ try self . testSTKL3LZZ2 ( )
21+ try self . testSTKL3LZZ3 ( )
22+ try self . testSTKL3LZZ4 ( ) // Coverage: 65.2%
23+ try self . testAF0F1 ( )
24+ try self . testAF1F0p2 ( ) // Coverage: 64.4%
1925 /*
2026 */
2127 }
@@ -434,7 +440,7 @@ final class LStXML2CodeTests: XCTestCase {
434440 KRV: 2 ,
435441 RE4: java. math. BigDecimal ( 2500000 ) ,
436442 STKL: 2 )
437-
443+
438444 calculator. LZZ = 0
439445 calculator. PVS = 1
440446
@@ -460,7 +466,7 @@ final class LStXML2CodeTests: XCTestCase {
460466 XCTAssertEqual ( calculator. WVFRBO, 0 )
461467 XCTAssertEqual ( calculator. WVFRBM, 0 )
462468 }
463-
469+
464470 // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=0&PVS=1&PVZ=1&RE4=2500000&STKL=4
465471 func testSTKL4LZZ0PVS1PVZ1( ) throws {
466472 let calculator = Lohnsteuer2023AbJuliBig (
@@ -531,4 +537,166 @@ final class LStXML2CodeTests: XCTestCase {
531537 XCTAssertEqual ( calculator. WVFRBM, 0 )
532538 }
533539
540+
541+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=2&RE4=250000&STKL=3
542+ func testSTKL3LZZ2( ) throws {
543+ let calculator = Lohnsteuer2023AbJuliBig (
544+ AJAHR: 1 ,
545+ KRV: 2 ,
546+ LZZ: 2 ,
547+ RE4: java. math. BigDecimal ( 250000 ) ,
548+ STKL: 3 )
549+ calculator. MAIN ( )
550+
551+ // must be set
552+ XCTAssertEqual ( calculator. VFRB, 123000 )
553+ XCTAssertEqual ( calculator. LSTLZZ, 5183 )
554+ XCTAssertEqual ( calculator. WVFRB, 1482600 )
555+ // must be zero
556+ XCTAssertEqual ( calculator. BK, 0 )
557+ XCTAssertEqual ( calculator. BKS, 0 )
558+ XCTAssertEqual ( calculator. BKV, 0 )
559+ XCTAssertEqual ( calculator. SOLZLZZ, 0 )
560+ XCTAssertEqual ( calculator. SOLZS, 0 )
561+ XCTAssertEqual ( calculator. SOLZV, 0 )
562+ XCTAssertEqual ( calculator. STS, 0 )
563+ XCTAssertEqual ( calculator. STV, 0 )
564+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
565+ XCTAssertEqual ( calculator. VKVSONST, 0 )
566+ XCTAssertEqual ( calculator. VFRBS1, 0 )
567+ XCTAssertEqual ( calculator. VFRBS2, 0 )
568+ XCTAssertEqual ( calculator. WVFRBO, 0 )
569+ XCTAssertEqual ( calculator. WVFRBM, 0 )
570+ }
571+
572+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=3&RE4=250000&STKL=3
573+ func testSTKL3LZZ3( ) throws {
574+ let calculator = Lohnsteuer2023AbJuliBig (
575+ AJAHR: 1 ,
576+ KRV: 2 ,
577+ LZZ: 3 ,
578+ RE4: java. math. BigDecimal ( 250000 ) ,
579+ STKL: 3 )
580+ calculator. MAIN ( )
581+
582+ // must be set
583+ XCTAssertEqual ( calculator. VFRB, 123000 )
584+ XCTAssertEqual ( calculator. LSTLZZ, 60950 )
585+ XCTAssertEqual ( calculator. WVFRB, 11119042 )
586+ // must be zero
587+ XCTAssertEqual ( calculator. BK, 0 )
588+ XCTAssertEqual ( calculator. BKS, 0 )
589+ XCTAssertEqual ( calculator. BKV, 0 )
590+ XCTAssertEqual ( calculator. SOLZLZZ, 0 )
591+ XCTAssertEqual ( calculator. SOLZS, 0 )
592+ XCTAssertEqual ( calculator. SOLZV, 0 )
593+ XCTAssertEqual ( calculator. STS, 0 )
594+ XCTAssertEqual ( calculator. STV, 0 )
595+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
596+ XCTAssertEqual ( calculator. VKVSONST, 0 )
597+ XCTAssertEqual ( calculator. VFRBS1, 0 )
598+ XCTAssertEqual ( calculator. VFRBS2, 0 )
599+ XCTAssertEqual ( calculator. WVFRBO, 0 )
600+ XCTAssertEqual ( calculator. WVFRBM, 0 )
601+ }
602+
603+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&AJAHR=1&KRV=2&LZZ=4&RE4=250000&STKL=3
604+ func testSTKL3LZZ4( ) throws {
605+ let calculator = Lohnsteuer2023AbJuliBig (
606+ AJAHR: 1 ,
607+ KRV: 2 ,
608+ LZZ: 4 ,
609+ RE4: java. math. BigDecimal ( 250000 ) ,
610+ STKL: 3 )
611+ calculator. MAIN ( )
612+
613+ // must be set
614+ XCTAssertEqual ( calculator. VFRB, 123000 )
615+ XCTAssertEqual ( calculator. LSTLZZ, 101519 )
616+ XCTAssertEqual ( calculator. WVFRB, 88261900 )
617+ XCTAssertEqual ( calculator. SOLZLZZ, 5583 )
618+ // must be zero
619+ XCTAssertEqual ( calculator. BK, 0 )
620+ XCTAssertEqual ( calculator. BKS, 0 )
621+ XCTAssertEqual ( calculator. BKV, 0 )
622+ XCTAssertEqual ( calculator. SOLZS, 0 )
623+ XCTAssertEqual ( calculator. SOLZV, 0 )
624+ XCTAssertEqual ( calculator. STS, 0 )
625+ XCTAssertEqual ( calculator. STV, 0 )
626+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
627+ XCTAssertEqual ( calculator. VKVSONST, 0 )
628+ XCTAssertEqual ( calculator. VFRBS1, 0 )
629+ XCTAssertEqual ( calculator. VFRBS2, 0 )
630+ XCTAssertEqual ( calculator. WVFRBO, 0 )
631+ XCTAssertEqual ( calculator. WVFRBM, 0 )
632+ }
633+
634+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&af=1&f=0.2&AJAHR=1&RE4=12345699
635+ func testAF1F0p2( ) throws {
636+ let calculator = Lohnsteuer2023AbJuliBig (
637+ AJAHR: 1 ,
638+ RE4: java. math. BigDecimal ( 123499 )
639+ )
640+ calculator. af = 1
641+ calculator. f = 0.2
642+
643+ calculator. MAIN ( )
644+
645+ // must be set
646+ XCTAssertEqual ( calculator. VFRB, 123000 )
647+ XCTAssertEqual ( calculator. LSTLZZ, 9733 )
648+ XCTAssertEqual ( calculator. WVFRB, 41910440 )
649+ XCTAssertEqual ( calculator. SOLZLZZ, 535 )
650+ // must be zero
651+ XCTAssertEqual ( calculator. BK, 0 )
652+ XCTAssertEqual ( calculator. BKS, 0 )
653+ XCTAssertEqual ( calculator. BKV, 0 )
654+ XCTAssertEqual ( calculator. SOLZS, 0 )
655+ XCTAssertEqual ( calculator. SOLZV, 0 )
656+ XCTAssertEqual ( calculator. STS, 0 )
657+ XCTAssertEqual ( calculator. STV, 0 )
658+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
659+ XCTAssertEqual ( calculator. VKVSONST, 0 )
660+ XCTAssertEqual ( calculator. VFRBS1, 0 )
661+ XCTAssertEqual ( calculator. VFRBS2, 0 )
662+ XCTAssertEqual ( calculator. WVFRBO, 0 )
663+ XCTAssertEqual ( calculator. WVFRBM, 0 )
664+ }
665+
666+
667+ // https://www.bmf-steuerrechner.de/interface/2023AbJuliVersion1.xhtml?code=ext2023&af=1&f=0.2&AJAHR=1&RE4=12345699
668+ func testAF0F1( ) throws {
669+ let calculator = Lohnsteuer2023AbJuliBig (
670+ AJAHR: 1 ,
671+ RE4: java. math. BigDecimal ( 123499 )
672+ )
673+ calculator. af = 0
674+ calculator. f = 1
675+
676+ calculator. MAIN ( )
677+
678+ // must be set
679+ XCTAssertEqual ( calculator. VFRB, 123000 )
680+ XCTAssertEqual ( calculator. LSTLZZ, 48665 )
681+ XCTAssertEqual ( calculator. WVFRB, 41910440 )
682+ XCTAssertEqual ( calculator. SOLZLZZ, 2676 )
683+ // must be zero
684+ XCTAssertEqual ( calculator. BK, 0 )
685+ XCTAssertEqual ( calculator. BKS, 0 )
686+ XCTAssertEqual ( calculator. BKV, 0 )
687+ XCTAssertEqual ( calculator. SOLZS, 0 )
688+ XCTAssertEqual ( calculator. SOLZV, 0 )
689+ XCTAssertEqual ( calculator. STS, 0 )
690+ XCTAssertEqual ( calculator. STV, 0 )
691+ XCTAssertEqual ( calculator. VKVLZZ, 0 )
692+ XCTAssertEqual ( calculator. VKVSONST, 0 )
693+ XCTAssertEqual ( calculator. VFRBS1, 0 )
694+ XCTAssertEqual ( calculator. VFRBS2, 0 )
695+ XCTAssertEqual ( calculator. WVFRBO, 0 )
696+ XCTAssertEqual ( calculator. WVFRBM, 0 )
697+ }
698+
699+
700+
701+
534702}
0 commit comments