assertEquals(548.04, $werte['betrag'], 'Kauf: Betrag = Stück × Kurs'); $this->assertEquals(12.0, $werte['stueck'], 'Kauf: Stück bleibt'); $this->assertEquals(45.67, $werte['kurs'], 'Kauf: Kurs bleibt'); $werte = Depotbuchung::dritterWert('verkauf', 8.0, 0.0, 1000.0); $this->assertEquals(125.0, $werte['kurs'], 'Verkauf: Kurs = Betrag / Stück'); $werte = Depotbuchung::dritterWert('kauf', 0.0, 3.0, 100.0); $this->assertEquals(33.333333, $werte['stueck'], 'Kauf: Stück = Betrag / Kurs, sechs Nachkommastellen'); $werte = Depotbuchung::dritterWert('kauf', 10.0, 20.0, 150.0); $this->assertEquals( ['stueck' => 10.0, 'kurs' => 20.0, 'betrag' => 150.0], $werte, 'Alle drei angegeben: nichts wird überschrieben' ); $werte = Depotbuchung::dritterWert('kauf', 0.0, 0.0, 150.0); $this->assertEquals( ['stueck' => 0.0, 'kurs' => 0.0, 'betrag' => 150.0], $werte, 'Nur eine Angabe: nichts zu rechnen' ); $werte = Depotbuchung::dritterWert('dividende', 0.0, 2.0, 50.0); $this->assertEquals(0.0, $werte['stueck'], 'Dividende: keine Stückzahl aus Betrag und Kurs'); $werte = Depotbuchung::dritterWert('einlage', 5.0, 0.0, 500.0); $this->assertEquals(0.0, $werte['kurs'], 'Einlieferung: kein Kurs aus Betrag und Stück'); $werte = Depotbuchung::dritterWert('einlage', 5.0, 10.0, 0.0); $this->assertEquals(50.0, $werte['betrag'], 'Einlieferung: Betrag aus Stück × Kurs wie bisher'); } }