Code Duplication    Length = 98-103 lines in 3 locations

src/Calculators/Factories/BondDurationCalculatorFactory.php 1 location

@@ 13-115 (lines=103) @@
10
     * Class BondDurationCalculatorFactory
11
     * @package FinanCalc\Calculators\Factories
12
     */
13
    class BondDurationCalculatorFactory extends CalculatorFactoryAbstract
14
    {
15
        const MANUFACTURED_CLASS_NAME = 'FinanCalc\\Calculators\\BondDurationCalculator';
16
17
18
        /**
19
         * @param $bondFaceValue
20
         * @param $bondAnnualCouponRate
21
         * @param $bondAnnualYield
22
         * @param $bondYearsToMaturity
23
         * @return BondDurationCalculator
24
         */
25
        public function newAnnualCouponsBond(
26
            $bondFaceValue,
27
            $bondAnnualCouponRate,
28
            $bondAnnualYield,
29
            $bondYearsToMaturity
30
        ) {
31
            return $this->manufactureInstance(
32
                [
33
                    $bondFaceValue,
34
                    $bondAnnualCouponRate,
35
                    $bondAnnualYield,
36
                    $bondYearsToMaturity
37
                ]
38
            );
39
        }
40
41
        /**
42
         * @param $bondFaceValue
43
         * @param $bondAnnualCouponRate
44
         * @param $bondAnnualYield
45
         * @param $bondYearsToMaturity
46
         * @return BondDurationCalculator
47
         */
48
        public function newSemiAnnualCouponsBond(
49
            $bondFaceValue,
50
            $bondAnnualCouponRate,
51
            $bondAnnualYield,
52
            $bondYearsToMaturity
53
        ) {
54
            return $this->manufactureInstance(
55
                [
56
                    $bondFaceValue,
57
                    $bondAnnualCouponRate,
58
                    $bondAnnualYield,
59
                    $bondYearsToMaturity,
60
                    2
61
                ]
62
            );
63
        }
64
65
66
        /**
67
         * @param $bondFaceValue
68
         * @param $bondAnnualCouponRate
69
         * @param $bondAnnualYield
70
         * @param $bondYearsToMaturity
71
         * @return BondDurationCalculator
72
         */
73
        public function newQuarterlyCouponsBond(
74
            $bondFaceValue,
75
            $bondAnnualCouponRate,
76
            $bondAnnualYield,
77
            $bondYearsToMaturity
78
        ) {
79
            return $this->manufactureInstance(
80
                [
81
                    $bondFaceValue,
82
                    $bondAnnualCouponRate,
83
                    $bondAnnualYield,
84
                    $bondYearsToMaturity,
85
                    4
86
                ]
87
            );
88
        }
89
90
91
        /**
92
         * @param $bondFaceValue
93
         * @param $bondAnnualCouponRate
94
         * @param $bondAnnualYield
95
         * @param $bondYearsToMaturity
96
         * @return BondDurationCalculator
97
         */
98
        public function newMonthlyCouponsBond(
99
            $bondFaceValue,
100
            $bondAnnualCouponRate,
101
            $bondAnnualYield,
102
            $bondYearsToMaturity
103
        ) {
104
            return $this->manufactureInstance(
105
                [
106
                    $bondFaceValue,
107
                    $bondAnnualCouponRate,
108
                    $bondAnnualYield,
109
                    $bondYearsToMaturity,
110
                    12
111
                ]
112
            );
113
        }
114
115
116
        /**
117
         * @param $bondFaceValue
118
         * @param $bondAnnualCouponRate

src/Calculators/Factories/BondFairValueCalculatorFactory.php 1 location

@@ 13-110 (lines=98) @@
10
     * Class BondFairValueCalculatorFactory
11
     * @package FinanCalc\Calculators\Factories
12
     */
13
    class BondFairValueCalculatorFactory extends CalculatorFactoryAbstract
14
    {
15
        const MANUFACTURED_CLASS_NAME = 'FinanCalc\\Calculators\\BondFairValueCalculator';
16
17
        /**
18
         * @param $bondFaceValue
19
         * @param $bondAnnualCouponRate
20
         * @param $bondVIR
21
         * @param $bondYearsToMaturity
22
         * @return BondFairValueCalculator
23
         */
24
        public function newAnnualCouponsBond($bondFaceValue, $bondAnnualCouponRate, $bondVIR, $bondYearsToMaturity)
25
        {
26
            return $this->manufactureInstance(
27
                [
28
                    $bondFaceValue,
29
                    $bondAnnualCouponRate,
30
                    $bondVIR,
31
                    $bondYearsToMaturity
32
                ]
33
            );
34
        }
35
36
        /**
37
         * @param $bondFaceValue
38
         * @param $bondAnnualCouponRate
39
         * @param $bondVIR
40
         * @param $bondYearsToMaturity
41
         * @return BondFairValueCalculator
42
         */
43
        public function newSemiAnnualCouponsBond($bondFaceValue, $bondAnnualCouponRate, $bondVIR, $bondYearsToMaturity)
44
        {
45
            return $this->manufactureInstance(
46
                [
47
                    $bondFaceValue,
48
                    $bondAnnualCouponRate,
49
                    $bondVIR,
50
                    $bondYearsToMaturity,
51
                    2
52
                ]
53
            );
54
        }
55
56
        /**
57
         * @param $bondFaceValue
58
         * @param $bondAnnualCouponRate
59
         * @param $bondVIR
60
         * @param $bondYearsToMaturity
61
         * @return BondFairValueCalculator
62
         */
63
        public function newQuarterlyCouponsBond($bondFaceValue, $bondAnnualCouponRate, $bondVIR, $bondYearsToMaturity)
64
        {
65
            return $this->manufactureInstance(
66
                [
67
                    $bondFaceValue,
68
                    $bondAnnualCouponRate,
69
                    $bondVIR,
70
                    $bondYearsToMaturity,
71
                    4
72
                ]
73
            );
74
        }
75
76
        /**
77
         * @param $bondFaceValue
78
         * @param $bondAnnualCouponRate
79
         * @param $bondVIR
80
         * @param $bondYearsToMaturity
81
         * @return BondFairValueCalculator
82
         */
83
        public function newMonthlyCouponsBond($bondFaceValue, $bondAnnualCouponRate, $bondVIR, $bondYearsToMaturity)
84
        {
85
            return $this->manufactureInstance(
86
                [
87
                    $bondFaceValue,
88
                    $bondAnnualCouponRate,
89
                    $bondVIR,
90
                    $bondYearsToMaturity,
91
                    12
92
                ]
93
            );
94
        }
95
96
        /**
97
         * @param $bondFaceValue
98
         * @param $bondAnnualCouponRate
99
         * @param $bondVIR
100
         * @param $bondYearsToMaturity
101
         * @param $bondPaymentFrequency
102
         * @return BondFairValueCalculator
103
         */
104
        public function newCustomCouponFrequencyBond(
105
            $bondFaceValue,
106
            $bondAnnualCouponRate,
107
            $bondVIR,
108
            $bondYearsToMaturity,
109
            $bondPaymentFrequency
110
        ) {
111
            return $this->manufactureInstance(
112
                [
113
                    $bondFaceValue,

src/Calculators/Factories/BondYTMCalculatorFactory.php 1 location

@@ 13-115 (lines=103) @@
10
     * Class BondYTMCalculatorFactory
11
     * @package FinanCalc\Calculators\Factories
12
     */
13
    class BondYTMCalculatorFactory extends CalculatorFactoryAbstract
14
    {
15
        const MANUFACTURED_CLASS_NAME = 'FinanCalc\\Calculators\\BondYTMCalculator';
16
17
        /**
18
         * @param $bondFaceValue
19
         * @param $bondMarketValue
20
         * @param $bondAnnualCouponRate
21
         * @param $bondYearsToMaturity
22
         * @return BondYTMCalculator
23
         * @internal param $bondVIR
24
         */
25
        public function newAnnualCouponsBond(
26
            $bondFaceValue,
27
            $bondMarketValue,
28
            $bondAnnualCouponRate,
29
            $bondYearsToMaturity
30
        ) {
31
            return $this->manufactureInstance(
32
                [
33
                    $bondFaceValue,
34
                    $bondMarketValue,
35
                    $bondAnnualCouponRate,
36
                    $bondYearsToMaturity
37
                ]
38
            );
39
        }
40
41
        /**
42
         * @param $bondFaceValue
43
         * @param $bondMarketValue
44
         * @param $bondAnnualCouponRate
45
         * @param $bondYearsToMaturity
46
         * @return BondYTMCalculator
47
         * @internal param $bondVIR
48
         */
49
        public function newSemiAnnualCouponsBond(
50
            $bondFaceValue,
51
            $bondMarketValue,
52
            $bondAnnualCouponRate,
53
            $bondYearsToMaturity
54
        ) {
55
            return $this->manufactureInstance(
56
                [
57
                    $bondFaceValue,
58
                    $bondMarketValue,
59
                    $bondAnnualCouponRate,
60
                    $bondYearsToMaturity,
61
                    2
62
                ]
63
            );
64
        }
65
66
        /**
67
         * @param $bondFaceValue
68
         * @param $bondMarketValue
69
         * @param $bondAnnualCouponRate
70
         * @param $bondYearsToMaturity
71
         * @return BondYTMCalculator
72
         * @internal param $bondVIR
73
         */
74
        public function newQuarterlyCouponsBond(
75
            $bondFaceValue,
76
            $bondMarketValue,
77
            $bondAnnualCouponRate,
78
            $bondYearsToMaturity
79
        ) {
80
            return $this->manufactureInstance(
81
                [
82
                    $bondFaceValue,
83
                    $bondMarketValue,
84
                    $bondAnnualCouponRate,
85
                    $bondYearsToMaturity,
86
                    4
87
                ]
88
            );
89
        }
90
91
        /**
92
         * @param $bondFaceValue
93
         * @param $bondMarketValue
94
         * @param $bondAnnualCouponRate
95
         * @param $bondYearsToMaturity
96
         * @return BondYTMCalculator
97
         * @internal param $bondVIR
98
         */
99
        public function newMonthlyCouponsBond(
100
            $bondFaceValue,
101
            $bondMarketValue,
102
            $bondAnnualCouponRate,
103
            $bondYearsToMaturity
104
        ) {
105
            return $this->manufactureInstance(
106
                [
107
                    $bondFaceValue,
108
                    $bondMarketValue,
109
                    $bondAnnualCouponRate,
110
                    $bondYearsToMaturity,
111
                    12
112
                ]
113
            );
114
        }
115
116
        /**
117
         * @param $bondFaceValue
118
         * @param $bondMarketValue