public function testZiskavanieZnamok() { $a = Znamka::fromString('A'); $this->assertEquals(1.0, $a->getNumerickaHodnota()); $b = Znamka::fromString('b'); $this->assertEquals(1.5, $b->getNumerickaHodnota()); $fx = Znamka::fromString('Fx'); $this->assertEquals(4, $fx->getNumerickaHodnota()); $nic = Znamka::fromString('nieco divne'); $this->assertEquals(null, $nic); }
/** * Prida predmet s danou znamkou, zarata do neohodnotenych ak * sa znamku nepodarilo rozpoznat alebo nie je vyplnena * @param string $castRoka do ktorej casti roka sa ma znamka zaratat * @param string $znamkaText nazov znamky (A, B, ...) * @param int $kredity pocet kreditov pre danu znamku */ public function add($castRoka, $znamkaText, $kredity) { Preconditions::check(in_array($castRoka, array(self::SEMESTER_LETNY, self::SEMESTER_ZIMNY, self::AKADEMICKY_ROK)), "Neplatná časť študijného roka."); $znamka = null; if ($znamkaText !== '') { $znamka = Znamka::fromString($znamkaText); } $this->obdobia[$castRoka]->add($kredity, $znamka); // Ak pridavame do akademickeho roka, tak hodnotu nechceme zaratat dvakrat if ($castRoka !== self::AKADEMICKY_ROK) { $this->obdobia[self::AKADEMICKY_ROK]->add($kredity, $znamka); } }
/** * Vypocita vazeny priemer, vaha sa berie z kreditov * @param boolean $neohodnotene true ak sa maju zapocitat aj neohodnotene * predmety so znamkou Fx * @returns float hodnota vazeneho priemeru */ public function vazenyPriemer($neohodnotene = true) { $suma = $this->sucetVah; $pocet = $this->pocetKreditovOhodnotenych; if ($neohodnotene) { $hodnotaFx = Znamka::fromString('Fx')->getNumerickaHodnota(); $suma += $this->pocetKreditovNeohodnotenych * $hodnotaFx; $pocet += $this->pocetKreditovNeohodnotenych; } if ($pocet == 0) { return null; } return $suma / $pocet; }