1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.fhw.cabaweb.junittests;
21
22 import junit.framework.TestCase;
23 import java.util.ArrayList;
24
25 import org.fhw.cabaweb.math.Vertrieb;
26 import org.fhw.cabaweb.data.dataobjects.GruppeWert;
27 import org.fhw.cabaweb.data.dataobjects.Marketingeffekt;
28 import org.fhw.cabaweb.data.dataobjects.Marktforschung;
29 import org.fhw.cabaweb.data.dataobjects.PreisAbsatz;
30
31 /***
32 * Klasse für den Test der Vertriebsberechnungsfunktionen
33 *
34 * @author <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
35 * @version Version 1.0 06-10.03.2004
36 */
37 public class VertriebTest extends TestCase
38 {
39 private ArrayList preisAbsatzTabelle;
40 private ArrayList marketingTabelle;
41 private ArrayList marktforschungTabelle;
42 private ArrayList absetzbareMengenTabelle;
43 private ArrayList fertigProdukteTabelle;
44 private ArrayList tatsaechlicherAbsatzTabelle;
45 private ArrayList umsatzTabelle;
46 private ArrayList wirksamerPreisTabelle;
47
48 public static void main(String args[])
49 {
50
51 junit.textui.TestRunner.run(VertriebTest.class);
52 }
53
54
55
56
57 protected void setUp() throws Exception
58 {
59 super.setUp();
60
61 preisAbsatzTabelle = new ArrayList();
62 marketingTabelle = new ArrayList();
63 marktforschungTabelle = new ArrayList();
64 absetzbareMengenTabelle = new ArrayList();
65 wirksamerPreisTabelle = new ArrayList();
66 umsatzTabelle = new ArrayList();
67 tatsaechlicherAbsatzTabelle = new ArrayList();
68 fertigProdukteTabelle = new ArrayList();
69
70 preisAbsatzTabelle.add(0, new PreisAbsatz(4.50, 950000));
71 preisAbsatzTabelle.add(1, new PreisAbsatz(5.00, 800000));
72 preisAbsatzTabelle.add(2, new PreisAbsatz(5.50, 600000));
73 preisAbsatzTabelle.add(3, new PreisAbsatz(6.00, 470000));
74 preisAbsatzTabelle.add(4, new PreisAbsatz(6.50, 450000));
75 preisAbsatzTabelle.add(5, new PreisAbsatz(7.00, 430000));
76 preisAbsatzTabelle.add(6, new PreisAbsatz(7.50, 330000));
77 preisAbsatzTabelle.add(7, new PreisAbsatz(8.00, 250000));
78 preisAbsatzTabelle.add(8, new PreisAbsatz(8.50, 150000));
79 preisAbsatzTabelle.add(9, new PreisAbsatz(9.00, 0));
80
81 marketingTabelle.add(0, new Marketingeffekt(0.00, -0.20));
82 marketingTabelle.add(1, new Marketingeffekt(0.02, -0.10));
83 marketingTabelle.add(2, new Marketingeffekt(0.04, 0.00));
84 marketingTabelle.add(3, new Marketingeffekt(0.06, 0.04));
85 marketingTabelle.add(4, new Marketingeffekt(0.08, 0.07));
86 marketingTabelle.add(5, new Marketingeffekt(0.10, 0.09));
87 marketingTabelle.add(6, new Marketingeffekt(0.12, 0.11));
88 marketingTabelle.add(7, new Marketingeffekt(0.14, 0.13));
89 marketingTabelle.add(8, new Marketingeffekt(0.17, 0.15));
90 marketingTabelle.add(9, new Marketingeffekt(0.20, 0.17));
91
92 marktforschungTabelle.add(0, new Marktforschung(0, 0.0));
93 marktforschungTabelle.add(1, new Marktforschung(1, 20000.0));
94 marktforschungTabelle.add(2, new Marktforschung(2, 30000.0));
95 marktforschungTabelle.add(3, new Marktforschung(3, 40000.0));
96 marktforschungTabelle.add(4, new Marktforschung(4, 50000.0));
97 marktforschungTabelle.add(5, new Marktforschung(5, 60000.0));
98
99 absetzbareMengenTabelle.add(0, new GruppeWert(new Integer(1), new Double(400000.00)));
100 absetzbareMengenTabelle.add(1, new GruppeWert(new Integer(2), new Double(200000.00)));
101 absetzbareMengenTabelle.add(2, new GruppeWert(new Integer(3), new Double(400000.00)));
102 absetzbareMengenTabelle.add(3, new GruppeWert(new Integer(4), new Double(200000.00)));
103 absetzbareMengenTabelle.add(4, new GruppeWert(new Integer(5), new Double(400000.00)));
104 absetzbareMengenTabelle.add(5, new GruppeWert(new Integer(6), new Double(200000.00)));
105 absetzbareMengenTabelle.add(6, new GruppeWert(new Integer(7), new Double(400000.00)));
106 absetzbareMengenTabelle.add(7, new GruppeWert(new Integer(8), new Double(200000.00)));
107 absetzbareMengenTabelle.add(8, new GruppeWert(new Integer(9), new Double(400000.00)));
108 absetzbareMengenTabelle.add(9, new GruppeWert(new Integer(10), new Double(200000.00)));
109
110 wirksamerPreisTabelle.add(0, new GruppeWert(new Integer(1), new Double(6.65)));
111 wirksamerPreisTabelle.add(1, new GruppeWert(new Integer(2), new Double(5.85)));
112 wirksamerPreisTabelle.add(2, new GruppeWert(new Integer(3), new Double(6.65)));
113 wirksamerPreisTabelle.add(3, new GruppeWert(new Integer(4), new Double(5.85)));
114 wirksamerPreisTabelle.add(4, new GruppeWert(new Integer(5), new Double(6.65)));
115 wirksamerPreisTabelle.add(5, new GruppeWert(new Integer(6), new Double(5.85)));
116 wirksamerPreisTabelle.add(6, new GruppeWert(new Integer(7), new Double(6.65)));
117 wirksamerPreisTabelle.add(7, new GruppeWert(new Integer(8), new Double(5.85)));
118 wirksamerPreisTabelle.add(8, new GruppeWert(new Integer(9), new Double(6.65)));
119 wirksamerPreisTabelle.add(9, new GruppeWert(new Integer(10), new Double(5.85)));
120
121 umsatzTabelle.add(0, new GruppeWert(new Integer(1), new Double(4000000.00)));
122 umsatzTabelle.add(1, new GruppeWert(new Integer(2), new Double(2000000.00)));
123 umsatzTabelle.add(2, new GruppeWert(new Integer(3), new Double(4000000.00)));
124 umsatzTabelle.add(3, new GruppeWert(new Integer(4), new Double(2000000.00)));
125 umsatzTabelle.add(4, new GruppeWert(new Integer(5), new Double(4000000.00)));
126 umsatzTabelle.add(5, new GruppeWert(new Integer(6), new Double(2000000.00)));
127 umsatzTabelle.add(6, new GruppeWert(new Integer(7), new Double(4000000.00)));
128 umsatzTabelle.add(7, new GruppeWert(new Integer(8), new Double(2000000.00)));
129 umsatzTabelle.add(8, new GruppeWert(new Integer(9), new Double(4000000.00)));
130 umsatzTabelle.add(9, new GruppeWert(new Integer(10), new Double(2000000.00)));
131
132 tatsaechlicherAbsatzTabelle.add(0, new GruppeWert(new Integer(1), new Double(400000.00)));
133 tatsaechlicherAbsatzTabelle.add(1, new GruppeWert(new Integer(2), new Double(100000.00)));
134 tatsaechlicherAbsatzTabelle.add(2, new GruppeWert(new Integer(3), new Double(400000.00)));
135 tatsaechlicherAbsatzTabelle.add(3, new GruppeWert(new Integer(4), new Double(100000.00)));
136 tatsaechlicherAbsatzTabelle.add(4, new GruppeWert(new Integer(5), new Double(400000.00)));
137 tatsaechlicherAbsatzTabelle.add(5, new GruppeWert(new Integer(6), new Double(100000.00)));
138 tatsaechlicherAbsatzTabelle.add(6, new GruppeWert(new Integer(7), new Double(400000.00)));
139 tatsaechlicherAbsatzTabelle.add(7, new GruppeWert(new Integer(8), new Double(100000.00)));
140 tatsaechlicherAbsatzTabelle.add(8, new GruppeWert(new Integer(9), new Double(400000.00)));
141 tatsaechlicherAbsatzTabelle.add(9, new GruppeWert(new Integer(10), new Double(100000.00)));
142
143 fertigProdukteTabelle.add(0, new GruppeWert(new Integer(1), new Double(400000.00)));
144 fertigProdukteTabelle.add(1, new GruppeWert(new Integer(2), new Double(100000.00)));
145 fertigProdukteTabelle.add(2, new GruppeWert(new Integer(3), new Double(400000.00)));
146 fertigProdukteTabelle.add(3, new GruppeWert(new Integer(4), new Double(100000.00)));
147 fertigProdukteTabelle.add(4, new GruppeWert(new Integer(5), new Double(400000.00)));
148 fertigProdukteTabelle.add(5, new GruppeWert(new Integer(6), new Double(100000.00)));
149 fertigProdukteTabelle.add(6, new GruppeWert(new Integer(7), new Double(400000.00)));
150 fertigProdukteTabelle.add(7, new GruppeWert(new Integer(8), new Double(100000.00)));
151 fertigProdukteTabelle.add(8, new GruppeWert(new Integer(9), new Double(400000.00)));
152 fertigProdukteTabelle.add(9, new GruppeWert(new Integer(10), new Double(100000.00)));
153 }
154
155 public void testInflationsIndex()
156 {
157 assertEquals(1.03, Vertrieb.inflationsIndex(1.0, 3.0), 0.0000000001);
158 assertEquals(1.1639, Vertrieb.inflationsIndex(1.13, 3.0), 0.0000000001);
159 assertEquals(1.03, Vertrieb.inflationsIndex(1, 3), 0.0000000001);
160 assertEquals(1.1639, Vertrieb.inflationsIndex(1.13, 3), 0.0000000001);
161 assertEquals(1.00, Vertrieb.inflationsIndex(1.0, 0.0), 0.0000000001);
162 assertEquals(1.00, Vertrieb.inflationsIndex(1, 0), 0.0000000001);
163 }
164
165 public void testLohnerhoehungsIndex()
166 {
167
168 assertEquals(1.15, Vertrieb.lohnerhoehungsIndex(1.0, 15.0), 0.0000000001);
169 assertEquals(1.3225, Vertrieb.lohnerhoehungsIndex(1.15, 15.0), 0.0000000001);
170 assertEquals(1.15, Vertrieb.lohnerhoehungsIndex(1, 15), 0.0000000001);
171 assertEquals(1.3225, Vertrieb.lohnerhoehungsIndex(1.15, 15), 0.0000000001);
172 assertEquals(1.00, Vertrieb.lohnerhoehungsIndex(1.0, 0.0), 0.0000000001);
173 assertEquals(1.00, Vertrieb.lohnerhoehungsIndex(1, 0), 0.0000000001);
174 }
175
176 public void testRealerPreis()
177 {
178
179 assertEquals(6.65, Vertrieb.realerPreis(6.65, 1.0), 0.0000000001);
180 assertEquals(6.65, Vertrieb.realerPreis(6.65, 1), 0.0000000001);
181 assertEquals(6.4563106796, Vertrieb.realerPreis(6.65, 1.03), 0.0000000001);
182 assertEquals(5.8849557522, Vertrieb.realerPreis(6.65, 1.13), 0.0000000001);
183 }
184
185 public void testWirksamerPreis()
186 {
187
188 assertEquals(6.65, Vertrieb.wirksamerPreis(6.65, 6.65, 0.0, 0.0), 0.0000000001);
189 assertEquals(6.4938258161, Vertrieb.wirksamerPreis(6.456310, 6.65, 0.0, 0.0), 0.0000000001);
190 /***@TODO Weitere Tests implementieren.*/
191 }
192
193 public void testPafWirksamerPreis()
194 {
195
196 assertEquals(4.50, Vertrieb.pafWirksamerPreis(1000000, preisAbsatzTabelle), 0.0000000001);
197 assertEquals(6.00, Vertrieb.pafWirksamerPreis(470000, preisAbsatzTabelle), 0.0000000001);
198 assertEquals(6.50, Vertrieb.pafWirksamerPreis(450000, preisAbsatzTabelle), 0.0000000001);
199 assertEquals(6.65, Vertrieb.pafWirksamerPreis(444000, preisAbsatzTabelle), 0.0000000001);
200 assertEquals(7.00, Vertrieb.pafWirksamerPreis(430000, preisAbsatzTabelle), 0.0000000001);
201 assertEquals(7.25, Vertrieb.pafWirksamerPreis(380000, preisAbsatzTabelle), 0.0000000001);
202 assertEquals(8.39, Vertrieb.pafWirksamerPreis(172000, preisAbsatzTabelle), 0.0000000001);
203 assertEquals(9.00, Vertrieb.pafWirksamerPreis(0, preisAbsatzTabelle), 0.0000000001);
204 }
205
206 public void testRealesMarketing()
207 {
208
209 assertEquals(100000, Vertrieb.realesMarketing(100000, 1.0), 0.0000000001);
210 assertEquals(200000, Vertrieb.realesMarketing(200000, 1), 0.0000000001);
211 assertEquals(291262.1359223301, Vertrieb.realesMarketing(300000, 1.03), 0.0000000001);
212 assertEquals(309734.5132743363, Vertrieb.realesMarketing(350000, 1.13), 0.0000000001);
213 }
214
215 public void testWirksamesMarketing()
216 {
217
218 assertEquals(100000, Vertrieb.wirksamesMarketing(0.0, 100000, 0.0), 0.0000000001);
219 assertEquals(134000, Vertrieb.wirksamesMarketing(0.33, 200000, 0.0), 0.0000000001);
220 assertEquals(175000, Vertrieb.wirksamesMarketing(0.25, 200000, 100000), 0.0000000001);
221 assertEquals(167000, Vertrieb.wirksamesMarketing(0.33, 200000, 100000), 0.0000000001);
222 assertEquals(218446.6019417476, Vertrieb.wirksamesMarketing(0.25, 291262.1359223301, 0), 0.0000000001);
223 assertEquals(
224 305116.4189363348,
225 Vertrieb.wirksamesMarketing(0.25, 309734.5132743363, 291262.1359223301),
226 0.0000000001);
227 }
228
229 public void testWirksamerMarketingEffekt()
230 {
231
232 assertEquals(0, Vertrieb.wirksamerMarketingEffekt(0.0, 0.0, marketingTabelle), 0.0000000001);
233 assertEquals(187823.844, Vertrieb.wirksamerMarketingEffekt(0.031007, 3384000.0, marketingTabelle), 0.0000000001);
234 assertEquals(225600.0, Vertrieb.wirksamerMarketingEffekt(0.05, 3384000.0, marketingTabelle), 0.0000000001);
235 assertEquals(372240.0, Vertrieb.wirksamerMarketingEffekt(0.1, 3384000.0, marketingTabelle), 0.000000001);
236 assertEquals(0, Vertrieb.wirksamerMarketingEffekt(-0.5, 3384000.0, marketingTabelle), 0.0000000001);
237 assertEquals(0, Vertrieb.wirksamerMarketingEffekt(-0.2, 3384000.0, marketingTabelle), 0.0000000001);
238 assertEquals(676800.0, Vertrieb.wirksamerMarketingEffekt(0.2, 3384000.0, marketingTabelle), 0.0000000001);
239 assertEquals(676800.0, Vertrieb.wirksamerMarketingEffekt(0.5, 3384000.0, marketingTabelle), 0.0000000001);
240 }
241
242 public void testMarketingEffekt()
243 {
244
245 assertEquals(-0.2, Vertrieb.marketingEffekt(0.0, 0.00, marketingTabelle), 0.0000000001);
246 assertEquals(-0.0522458629, Vertrieb.marketingEffekt(100000.0, 3384000.00, marketingTabelle), 0.0000000001);
247 assertEquals(0.0608156028, Vertrieb.marketingEffekt(250000.0, 3384000.00, marketingTabelle), 0.0000000001);
248 /***@TODO Weitere Tests implementieren.*/
249 }
250
251 public void testGrenzMarketingEffekt()
252 {
253
254 assertEquals(0.0, Vertrieb.grenzMarketingEffekt(6.65, 6.65, 6.65, 0.0), 0.0000000001);
255 assertEquals(0.0310077519, Vertrieb.grenzMarketingEffekt(6.65, 6.45, 6.65, 0.0), 0.0000000001);
256 /***@TODO Weitere Tests implementieren.*/
257 }
258
259 public void testNominellesMarketing()
260 {
261
262 assertEquals(0.0, Vertrieb.nominellesMarketing(0, 1.00), 0.0000000001);
263 assertEquals(100000.0, Vertrieb.nominellesMarketing(100000, 1.00), 0.0000000001);
264 assertEquals(103000.0, Vertrieb.nominellesMarketing(100000, 1.03), 0.0000000001);
265 assertEquals(113000.0, Vertrieb.nominellesMarketing(100000, 1.13), 0.0000000001);
266 assertEquals(252562.5, Vertrieb.nominellesMarketing(225000, 1.1225), 0.0000000001);
267 assertEquals(999999999.0, Vertrieb.nominellesMarketing(999999999, 1.00), 0.0000000001);
268 }
269
270 public void testPafAbsatz()
271 {
272
273 assertEquals(950000.0, Vertrieb.pafAbsatz(4.00, preisAbsatzTabelle), 0.0000000001);
274 assertEquals(444000.0, Vertrieb.pafAbsatz(6.65, preisAbsatzTabelle), 0.0000000001);
275 assertEquals(450246.967356, Vertrieb.pafAbsatz(6.4938258161, preisAbsatzTabelle), 0.0000000001);
276 assertEquals(0.0, Vertrieb.pafAbsatz(10.00, preisAbsatzTabelle), 0.0000000001);
277 }
278
279 public void testGrenzMarketingKosten()
280 {
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298 assertEquals(
299 0.0,
300 Vertrieb.grenzMarketingKosten(
301 0.0,
302 0.0,
303 0.0,
304 0.0,
305 0.0,
306 0.0,
307 0.0,
308 0.0,
309 0.0,
310 0.0,
311 0.0,
312 0.0,
313 0.0,
314 preisAbsatzTabelle,
315 marketingTabelle,
316 0),
317 0.0000000001);
318 assertEquals(
319 -2.15142404,
320 Vertrieb.grenzMarketingKosten(
321 1.0,
322 1.0,
323 508886.0,
324 5.8504398827,
325 6.65,
326 6.65,
327 0.0,
328 2000000.0,
329 300000.0,
330 1.0,
331 0.33,
332 300000.0,
333 1.0,
334 preisAbsatzTabelle,
335 marketingTabelle,
336 1),
337 0.0000000001);
338 assertEquals(
339 -2.2282363784,
340 Vertrieb.grenzMarketingKosten(
341 1.0,
342 1.0,
343 508886.0,
344 5.8504398827,
345 6.65,
346 6.65,
347 0.0,
348 2000000.0,
349 300000.0,
350 1.0,
351 0.33,
352 300000.0,
353 0.95,
354 preisAbsatzTabelle,
355 marketingTabelle,
356 1),
357 0.0000000001);
358 assertEquals(
359 0.0,
360 Vertrieb.grenzMarketingKosten(
361 1.0,
362 1.0,
363 508886.0,
364 5.8504398827,
365 6.65,
366 6.65,
367 0.0,
368 2000000.0,
369 300000.0,
370 0.0,
371 0.33,
372 300000.0,
373 0.95,
374 preisAbsatzTabelle,
375 marketingTabelle,
376 1),
377 0.0000000001);
378 /***@TODO Weitere Tests implementieren.*/
379 }
380
381 public void testMengeAbsetzbar()
382 {
383
384 assertEquals(0.0, Vertrieb.mengeAbsetzbar(0.0, 1.0, 1.0, 1.0), 0.0000000001);
385 assertEquals(444000.0, Vertrieb.mengeAbsetzbar(444000.0, 1.0, 1.0, 1.0), 0.0000000001);
386 assertEquals(493284.0, Vertrieb.mengeAbsetzbar(444000.0, 1.01, 1.10, 1.0), 0.000000001);
387 /***@TODO Weitere Tests implementieren.*/
388 }
389
390 public void testZusaetzlicherAbsatzDurchDefizitAndererUnternehmen()
391 {
392
393 assertEquals(
394 0.0,
395 Vertrieb.zusaetzlicherAbsatzDurchDefizitAndererUnternehmen(0.0, absetzbareMengenTabelle, new Integer(1)),
396 0.0000000001);
397 assertEquals(
398 666.6666666667,
399 Vertrieb.zusaetzlicherAbsatzDurchDefizitAndererUnternehmen(10000.0, absetzbareMengenTabelle, new Integer(2)),
400 0.0000000001);
401 assertEquals(
402 13333.32,
403 Vertrieb.zusaetzlicherAbsatzDurchDefizitAndererUnternehmen(99999.90, absetzbareMengenTabelle, new Integer(3)),
404 0.0000000001);
405 assertEquals(
406 0.0,
407 Vertrieb.zusaetzlicherAbsatzDurchDefizitAndererUnternehmen(0.0, absetzbareMengenTabelle, new Integer(4)),
408 0.0000000001);
409 assertEquals(
410 1333.3333333333,
411 Vertrieb.zusaetzlicherAbsatzDurchDefizitAndererUnternehmen(10000.0, absetzbareMengenTabelle, new Integer(5)),
412 0.0000000001);
413
414 ArrayList tempAbsetzbareMengenTabelle = new ArrayList();
415 tempAbsetzbareMengenTabelle.add(0, new GruppeWert(new Integer(1), new Double(0.0)));
416
417 assertEquals(
418 0.0,
419 Vertrieb.zusaetzlicherAbsatzDurchDefizitAndererUnternehmen(0.0, tempAbsetzbareMengenTabelle, new Integer(1)),
420 0.0000000001);
421
422 tempAbsetzbareMengenTabelle.add(1, new GruppeWert(new Integer(1), new Double(0.0)));
423
424 assertEquals(
425 0.0,
426 Vertrieb.zusaetzlicherAbsatzDurchDefizitAndererUnternehmen(0.0, tempAbsetzbareMengenTabelle, new Integer(1)),
427 0.0000000001);
428 }
429
430 public void testMengeAbsetzbarInklusiveZusaetzlichemAbsatzDurchDefizitAndererUnternehmen()
431 {
432
433 assertEquals(
434 0.0,
435 Vertrieb.mengeAbsetzbarInklusiveZusaetzlichemAbsatzDurchDefizitAndererUnternehmen(0.0, 1.0, 1.0, 1.0, 0.0),
436 0.0000000001);
437 assertEquals(
438 445000.0,
439 Vertrieb.mengeAbsetzbarInklusiveZusaetzlichemAbsatzDurchDefizitAndererUnternehmen(
440 444000.0,
441 1.0,
442 1.0,
443 1.0,
444 1000.0),
445 0.0000000001);
446 assertEquals(
447 504385.0,
448 Vertrieb.mengeAbsetzbarInklusiveZusaetzlichemAbsatzDurchDefizitAndererUnternehmen(
449 444000.0,
450 1.03,
451 1.1,
452 1.0,
453 1333.0),
454 0.000000001);
455 assertEquals(
456 436017.0,
457 Vertrieb.mengeAbsetzbarInklusiveZusaetzlichemAbsatzDurchDefizitAndererUnternehmen(
458 444000.0,
459 1.01,
460 0.95,
461 1.0,
462 9999.0),
463 0.0000000001);
464 }
465
466 public void testMinderAbsatz()
467 {
468
469 assertEquals(444000.0, Vertrieb.minderAbsatz(1.0, 1.0, 444000.0, 0.0), 0.0000000001);
470 assertEquals(503052.0, Vertrieb.minderAbsatz(1.03, 1.1, 444000.0, 0.0), 0.000000001);
471 assertEquals(291084.1799999999, Vertrieb.minderAbsatz(1.03, 0.95, 444000.0, 0.33), 0.0000000001);
472 }
473
474 public void testFertigProdukteGesamt()
475 {
476
477 assertEquals(0.0, Vertrieb.fertigProdukteGesamt(0.0, 0.0), 0.0000000001);
478 assertEquals(444000.0, Vertrieb.fertigProdukteGesamt(444000.0, 0.0), 0.0000000001);
479 assertEquals(455000.0, Vertrieb.fertigProdukteGesamt(444000.0, 11000.0), 0.0000000001);
480 }
481
482 public void testDefizit()
483 {
484
485 assertEquals(0.0, Vertrieb.defizit(0.0, 0.0), 0.0000000001);
486 assertEquals(0.0, Vertrieb.defizit(444000.0, 400000.0), 0.0000000001);
487 assertEquals(0.0, Vertrieb.defizit(444000.0, 444000.0), 0.0000000001);
488 assertEquals(56000.0, Vertrieb.defizit(444000.0, 500000.0), 0.0000000001);
489 }
490
491 public void testDefizitAndererUnternehmenGesamt()
492 {
493
494 assertEquals(250000.0, Vertrieb.defizitAndererUnternehmenGesamt(fertigProdukteTabelle, absetzbareMengenTabelle, new Integer(1)), 0.0000000001);
495 }
496
497 public void testTatsaechlicherAbsatz()
498 {
499
500 assertEquals(0.0, Vertrieb.tatsaechlicherAbsatz(0.0, 0.0), 0.0000000001);
501 assertEquals(-1.0, Vertrieb.tatsaechlicherAbsatz(-1.0, 0.0), 0.0000000001);
502 assertEquals(-1.0, Vertrieb.tatsaechlicherAbsatz(-1.0, -1.0), 0.0000000001);
503 assertEquals(-1.0, Vertrieb.tatsaechlicherAbsatz(0.0, -1.0), 0.0000000001);
504 assertEquals(499999.0, Vertrieb.tatsaechlicherAbsatz(500000.0, 499999.0), 0.0000000001);
505 assertEquals(499999.0, Vertrieb.tatsaechlicherAbsatz(499999.0, 500000.0), 0.0000000001);
506 }
507
508 public void testLagerZugangFertigprodukteStueck()
509 {
510
511 assertEquals(0.0, Vertrieb.lagerZugangFertigprodukteStueck(0.0, 0.0), 0.0000000001);
512 assertEquals(0.0, Vertrieb.lagerZugangFertigprodukteStueck(444000.0, 400000.0), 0.0000000001);
513 assertEquals(0.0, Vertrieb.lagerZugangFertigprodukteStueck(400000.0, 400000.0), 0.0000000001);
514 assertEquals(56000.0, Vertrieb.lagerZugangFertigprodukteStueck(444000.0, 500000.0), 0.0000000001);
515 }
516
517 public void testLagerAbgangFertigprodukteStueck()
518 {
519
520 assertEquals(0.0, Vertrieb.lagerAbgangFertigprodukteStueck(0.0, 0.0, 0.0), 0.0000000001);
521 assertEquals(0.0, Vertrieb.lagerAbgangFertigprodukteStueck(444000.0, 400000.0, 0.0), 0.0000000001);
522 assertEquals(0.0, Vertrieb.lagerAbgangFertigprodukteStueck(400000.0, 400000.0, 0.0), 0.0000000001);
523 assertEquals(0.0, Vertrieb.lagerAbgangFertigprodukteStueck(444000.0, 500000.0, 0.0), 0.0000000001);
524 assertEquals(44000.0, Vertrieb.lagerAbgangFertigprodukteStueck(444000.0, 400000.0, 100000.0), 0.0000000001);
525 assertEquals(0.0, Vertrieb.lagerAbgangFertigprodukteStueck(400000.0, 400000.0, 40000.0), 0.0000000001);
526 assertEquals(0.0, Vertrieb.lagerAbgangFertigprodukteStueck(444000.0, 500000.0, 50000.0), 0.0000000001);
527 assertEquals(10000.0, Vertrieb.lagerAbgangFertigprodukteStueck(500000.0, 444000.0, 10000.0), 0.0000000001);
528 }
529
530 public void testLagerBestandFertigprodukteStueck()
531 {
532
533 assertEquals(0.0, Vertrieb.lagerBestandFertigprodukteStueck(0.0, 0.0, 0.0), 0.0000000001);
534 assertEquals(40000.0, Vertrieb.lagerBestandFertigprodukteStueck(40000.0, 0.0, 0.0), 0.0000000001);
535 assertEquals(0.0, Vertrieb.lagerBestandFertigprodukteStueck(40000.0, 40000.0, 0.0), 0.0000000001);
536 assertEquals(80000.0, Vertrieb.lagerBestandFertigprodukteStueck(40000.0, 0.0, 40000.0), 0.0000000001);
537 assertEquals(40000.0, Vertrieb.lagerBestandFertigprodukteStueck(40000.0, 40000.0, 40000.0), 0.0000000001);
538 }
539
540 public void testRohstoffKostenProGutesStueck()
541 {
542
543 assertEquals(1.0, Vertrieb.rohstoffKostenProGutesStueck(1.0, 1.0, 0.0), 0.0000000001);
544 assertEquals(1.0810810811, Vertrieb.rohstoffKostenProGutesStueck(1.0, 1.0, 7.5), 0.0000000001);
545 assertEquals(1.3621621622, Vertrieb.rohstoffKostenProGutesStueck(1.2, 1.05, 7.5), 0.0000000001);
546 /***@TODO Weitere Tests implementieren.*/
547 }
548
549 public void testLohnkostenProGutesStueck()
550 {
551
552 assertEquals(0.8547008547, Vertrieb.lohnkostenProGutesStueck(5.0, 10.0, 10.0, 0.0), 0.0000000001);
553 assertEquals(0.9754273504, Vertrieb.lohnkostenProGutesStueck(5.0, 11.0, 10.0, 50.0), 0.0000000001);
554 assertEquals(1.9508547009, Vertrieb.lohnkostenProGutesStueck(10.0, 11.0, 10.0, 50.0), 0.0000000001);
555 assertEquals(2.9262820513, Vertrieb.lohnkostenProGutesStueck(15.0, 11.0, 10.0, 50.0), 0.0000000001);
556 }
557
558 public void testKostenProFertigprodukt()
559 {
560
561
562
563
564
565
566
567
568
569 assertEquals(2.8715498938, Vertrieb.kostenProFertigprodukt(10.0, 5.0, 1.0, 7.5, 1.0, 1.0, 0.0), 0.0000000001);
570 /***@TODO Weitere Tests implementieren.*/
571 }
572
573 public void testLagerZugangFertigprodukteEuro()
574 {
575
576 assertEquals(0.0, Vertrieb.lagerZugangFertigprodukteEuro(0.0, 1.0), 0.0000000001);
577 assertEquals(50000.0, Vertrieb.lagerZugangFertigprodukteEuro(50000.0, 1.0), 0.0000000001);
578 assertEquals(52500.0, Vertrieb.lagerZugangFertigprodukteEuro(50000.0, 1.05), 0.0000000001);
579 }
580
581 public void testDurchschnittlicherWertFertigprodukteLager()
582 {
583
584 assertEquals(0.0, Vertrieb.durchschnittlicherWertFertigprodukteLager(0.0, 0.0), 0.0000000001);
585 assertEquals(1.50, Vertrieb.durchschnittlicherWertFertigprodukteLager(44000.00, 66000.00), 0.0000000001);
586 assertEquals(
587 1.4444444444,
588 Vertrieb.durchschnittlicherWertFertigprodukteLager(45000.00, 65000.00),
589 0.0000000001);
590 }
591
592 public void testLagerAbgangFertigprodukteEuro()
593 {
594
595 assertEquals(0.0, Vertrieb.lagerAbgangFertigprodukteEuro(1.0, 0.0), 0.0000000001);
596 assertEquals(44000.0, Vertrieb.lagerAbgangFertigprodukteEuro(1.0, 44000.0), 0.0000000001);
597 assertEquals(190190.0, Vertrieb.lagerAbgangFertigprodukteEuro(4.3225, 44000.0), 0.0000000001);
598 }
599
600 public void testLagerBestandFertigprodukteEuro()
601 {
602
603 assertEquals(0.0, Vertrieb.lagerBestandFertigprodukteEuro(0.0, 0.0, 0.0), 0.0000000001);
604 assertEquals(44000.0, Vertrieb.lagerBestandFertigprodukteEuro(44000.0, 0.0, 0.0), 0.0000000001);
605 assertEquals(88000.0, Vertrieb.lagerBestandFertigprodukteEuro(44000.0, 44000.0, 0.0), 0.0000000001);
606 assertEquals(22000.0, Vertrieb.lagerBestandFertigprodukteEuro(44000.0, 0.0, 22000.0), 0.0000000001);
607 assertEquals(44000.0, Vertrieb.lagerBestandFertigprodukteEuro(44000.0, 44000.0, 44000.0), 0.0000000001);
608 }
609
610 public void testLagerKostenFertigprodukte()
611 {
612
613 assertEquals(0.0, Vertrieb.lagerKostenFertigprodukte(0.0, 0.0), 0.0000000001);
614 assertEquals(44000.0, Vertrieb.lagerKostenFertigprodukte(44000.0, 1.0), 0.0000000001);
615 assertEquals(66000.0, Vertrieb.lagerKostenFertigprodukte(44000.0, 1.5), 0.0000000001);
616 }
617
618 public void testRohstoffLagerBestandEuro()
619 {
620
621 assertEquals(0.0, Vertrieb.rohstoffLagerBestandEuro(0.0, 0.0), 0.0000000001);
622 assertEquals(44000.0, Vertrieb.rohstoffLagerBestandEuro(44000.0, 1.0), 0.0000000001);
623 assertEquals(66000.0, Vertrieb.rohstoffLagerBestandEuro(44000.0, 1.5), 0.0000000001);
624 }
625
626 public void testMarktAnteil()
627 {
628 assertEquals(16.0, Vertrieb.marktAnteil(tatsaechlicherAbsatzTabelle, new Integer(1)), 0.0000000001);
629 assertEquals(4.0, Vertrieb.marktAnteil(tatsaechlicherAbsatzTabelle, new Integer(2)), 0.0000000001);
630
631 ArrayList tempTatsaechlicherAbsatzTabelle = new ArrayList();
632 tempTatsaechlicherAbsatzTabelle.add(0, new GruppeWert(new Integer(1), new Double(400000.0)));
633
634 assertEquals(100.0, Vertrieb.marktAnteil(tempTatsaechlicherAbsatzTabelle, new Integer(1)), 0.0000000001);
635
636 tempTatsaechlicherAbsatzTabelle.add(1, new GruppeWert(new Integer(2), new Double(0.0)));
637
638 assertEquals(0.0, Vertrieb.marktAnteil(tempTatsaechlicherAbsatzTabelle, new Integer(2)), 0.0000000001);
639
640 tempTatsaechlicherAbsatzTabelle.add(2, new GruppeWert(new Integer(3), new Double(400000.0)));
641
642 assertEquals(50.0, Vertrieb.marktAnteil(tempTatsaechlicherAbsatzTabelle, new Integer(3)), 0.0000000001);
643 }
644
645 public void testUmsatzAnteil()
646 {
647 assertEquals(13.3333333333, Vertrieb.umsatzAnteil(umsatzTabelle, new Integer(1)), 0.0000000001);
648 assertEquals(6.6666666667, Vertrieb.umsatzAnteil(umsatzTabelle, new Integer(2)), 0.0000000001);
649
650 ArrayList tempUmsatzTabelle = new ArrayList();
651 tempUmsatzTabelle.add(0, new GruppeWert(new Integer(1), new Double(0.0)));
652
653 assertEquals(100.0, Vertrieb.umsatzAnteil(tempUmsatzTabelle, new Integer(1)), 0.0000000001);
654
655 tempUmsatzTabelle.add(1, new GruppeWert(new Integer(2), new Double(0.0)));
656
657 assertEquals(0.0, Vertrieb.umsatzAnteil(tempUmsatzTabelle, new Integer(1)), 0.0000000001);
658 }
659
660 public void testUmsatz()
661 {
662
663 assertEquals(0.0, Vertrieb.umsatz(0.0, 0.0), 0.0000000001);
664 assertEquals(0.0, Vertrieb.umsatz(0.0, 6.65), 0.0000000001);
665 assertEquals(2952600.0, Vertrieb.umsatz(444000.0, 6.65), 0.0000000001);
666 assertEquals(3325000.0, Vertrieb.umsatz(500000.0, 6.65), 0.0000000001);
667 }
668
669 public void testMarktforschungskosten()
670 {
671
672 assertEquals(0.0, Vertrieb.marktforschungskosten(marktforschungTabelle, 0), 0.0000000001);
673 assertEquals(20000.0, Vertrieb.marktforschungskosten(marktforschungTabelle, 1), 0.0000000001);
674 assertEquals(30000.0, Vertrieb.marktforschungskosten(marktforschungTabelle, 2), 0.0000000001);
675 }
676
677 public void testKorrekturfaktor()
678 {
679
680 assertEquals(0.8833173158, Vertrieb.korrekturfaktor(wirksamerPreisTabelle, new Integer(1)), 0.0000000001);
681 assertEquals(1.0, Vertrieb.korrekturfaktor(wirksamerPreisTabelle, new Integer(2)), 0.0000000001);
682 assertEquals(0.8833173158, Vertrieb.korrekturfaktor(wirksamerPreisTabelle, new Integer(3)), 0.0000000001);
683 }
684
685 public void testSchaetzfehlerQualitaetssicherung()
686 {
687
688 assertEquals(0.0, Vertrieb.schaetzfehlerQualitaetssicherung(0.0, 0.0, 0.0), 0.0000000001);
689 assertEquals(0.0, Vertrieb.schaetzfehlerQualitaetssicherung(10000.0, 10000.0, 400000.0), 0.0000000001);
690 assertEquals(0.0025, Vertrieb.schaetzfehlerQualitaetssicherung(11000.0, 10000.0, 400000.0), 0.0000000001);
691 assertEquals(-0.125, Vertrieb.schaetzfehlerQualitaetssicherung(100000.0, 150000.0, 400000.0), 0.0000000001);
692 assertEquals(0.125, Vertrieb.schaetzfehlerQualitaetssicherung(150000.0, 100000.0, 400000.0), 0.0000000001);
693 }
694 }