Skip to content

Commit d7b7194

Browse files
committed
full code coverage for MRE4JL function
1 parent a9ca29d commit d7b7194

File tree

1 file changed

+171
-3
lines changed

1 file changed

+171
-3
lines changed

Tests/LStXML2CodeTests/LStXML2CodeTests.swift

Lines changed: 171 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import JavApi
66
final 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

Comments
 (0)