@@ -4,83 +4,261 @@ import XCTest
44import JavApi
55
66final 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+ }
53264}
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