public function __construct($data)
    {
        parent::__construct($data);
        $this->checkAnswers();
        self::$markingSchemers = [1 => [1 => new MarkingSchemeType1([1, 2, 3], 7.5), 2 => new MarkingSchemeType2([1, 2, 3], 12)], 4 => [1 => new MarkingSchemeType1([4, 5], 5), 2 => new MarkingSchemeType2([4, 5], 8)], 6 => [1 => new MarkingSchemeType1([6, 7], 5), 2 => new MarkingSchemeType2([6, 7], 8)], 8 => new MarkingSchemePuzzles1([8, 9, 10, 11], 0), 12 => [1 => new MarkingSchemeType1([12], 5), 2 => new MarkingSchemeType2([12], 8)], 13 => [1 => new MarkingSchemeType1([13, 14, 15], 7.5), 2 => new MarkingSchemeType2([13, 14, 15], 12)], 16 => [1 => new MarkingSchemeType1([16, 17, 18], 7.5), 2 => new MarkingSchemeType2([16, 17, 18], 12)], 19 => [1 => new MarkingSchemeType1([19, 20, 21], 7.5), 2 => new MarkingSchemeType2([19, 20, 21], 12)], 22 => [1 => new MarkingSchemeType1([22, 23, 24, 25], 10), 2 => new MarkingSchemeType2([22, 23, 24, 25], 16)]];
        self::$betters = [13 => new BettingScheme1([13, 14, 15]), 19 => new BettingScheme1([19, 20, 21]), 22 => new BettingScheme1([22, 23, 24, 25])];
    }
}
$i = 0;
$juniors_key = [1 => 3, 2 => 2, 3 => 4, 4 => 2, 5 => 3, 6 => 4, 7 => 1, 8 => 4, 9 => 1230, 10 => 4, 11 => 1, 12 => 9, 13 => 4, 14 => 4, 15 => 1, 16 => 2, 17 => [1, 3], 18 => 2, 19 => 4, 20 => 4, 21 => 4, 22 => function ($value) {
    return true;
}, 23 => 4, 24 => 1, 25 => 2];
$hauts_key = [1 => 2, 2 => function ($value) {
    return true;
}, 3 => 3, 4 => 3, 5 => 2, 6 => 2, 7 => 2, 8 => 43, 9 => 182, 10 => 3, 11 => 4, 12 => 4, 13 => 80, 14 => 2, 15 => [1, 3], 16 => 2, 17 => 2, 18 => 1, 19 => 3, 20 => 3, 21 => 4, 22 => 4, 23 => 1, 24 => 4, 25 => 4, 26 => 4];
TechnothlonEvaluator::setSolutions($juniors_key);
$file = fopen('/Users/x/Desktop/Scanned_OMR/juniors.fixed.csv', 'r');
$i = 0;
if ($file) {
    while (($data = fgets($file, 8192)) !== false) {
        if (0 === $i) {
            TechnothlonEvaluator::setKeys($data);
        } else {
            $ele = new JuniorTechnothlonEvaluator($data);
            $result = $ele->get(true);
            echo $result;
        }
        $i++;
    }
    fclose($file);
}
    }
}
$i = 0;
$juniors_key = [1 => 3, 2 => 2, 3 => 4, 4 => 2, 5 => 3, 6 => 4, 7 => 1, 8 => 4, 9 => 1230, 10 => 4, 11 => 1, 12 => 9, 13 => 4, 14 => 4, 15 => 1, 16 => 2, 17 => [1, 3], 18 => 2, 19 => 4, 20 => 4, 21 => 4, 22 => function ($value) {
    return true;
}, 23 => 4, 24 => 1, 25 => 2];
$hauts_key = [1 => 2, 2 => function ($value) {
    return true;
}, 3 => 3, 4 => 3, 5 => 2, 6 => 2, 7 => 2, 8 => 43, 9 => 182, 10 => 3, 11 => 4, 12 => 4, 13 => 80, 14 => 2, 15 => [1, 3], 16 => 2, 17 => 2, 18 => 1, 19 => 3, 20 => 3, 21 => 4, 22 => 4, 23 => 1, 24 => 4, 25 => 4, 26 => 4];
$kv_hauts_key = [1 => 3, 2 => 1, 3 => 3, 4 => 1, 5 => 4, 6 => 2, 7 => 1, 8 => 1, 9 => 3, 10 => 4, 11 => 1, 12 => 4, 13 => 2, 14 => [1, 3], 15 => 2, 16 => 4, 17 => 4, 18 => 4, 19 => function () {
    return true;
}, 20 => 4, 21 => 1, 22 => 2];
$kv_junior_key = [1 => 1, 2 => 2, 3 => 4, 4 => 1, 5 => 1, 6 => 1, 7 => 3, 8 => 3, 9 => 4, 10 => 3, 11 => 3, 12 => 4, 13 => 3, 14 => 1, 15 => 4, 16 => 4, 17 => 1, 18 => function () {
    return true;
}, 19 => 4, 20 => 1, 21 => 2];
TechnothlonEvaluator::setSolutions($hauts_key);
$file = fopen('/Users/x/Desktop/hauts-4.csv', 'r');
$i = 0;
if ($file) {
    while (($data = fgets($file, 8192)) !== false) {
        if (0 === $i) {
            TechnothlonEvaluator::setKeys($data);
        } else {
            $ele = new HautsTechnothlonEvaluator($data);
            $result = $ele->get(true);
            echo $result;
        }
        $i++;
    }
    fclose($file);
}