Passed
Push — developer ( bbf51e...9cad11 )
by Radosław
57:03
created
lib/Math.php 2 patches
Indentation   +191 added lines, -191 removed lines patch added patch discarded remove patch
@@ -18,195 +18,195 @@
 block discarded – undo
18 18
  */
19 19
 class Math
20 20
 {
21
-    /**
22
-     * Current scale = precision.
23
-     *
24
-     * @var int
25
-     */
26
-    public static $scale = 2;
27
-
28
-    /**
29
-     * Standard scale = precision.
30
-     *
31
-     * @var int
32
-     */
33
-    public static $standardScale = 2;
34
-
35
-    /**
36
-     * High scale for more accurate calculations when needed (ratio for example).
37
-     *
38
-     * @var int
39
-     */
40
-    public static $highScale = 6;
41
-
42
-    /**
43
-     * Set more accurate calculation.
44
-     *
45
-     * @param bool $accurate
46
-     */
47
-    public static function setAccurate(bool $accurate)
48
-    {
49
-        if ($accurate) {
50
-            static::$scale = static::$highScale;
51
-        } else {
52
-            static::$scale = static::$standardScale;
53
-        }
54
-    }
55
-
56
-    /**
57
-     * Add two numbers.
58
-     *
59
-     * @params string[] $numbers
60
-     *
61
-     * @param string[] $numbers
62
-     *
63
-     * @return string
64
-     */
65
-    public static function add(string ...$numbers)
66
-    {
67
-        if (!isset($numbers[2])) {
68
-            // % is not fully supported, so if % appears here for some reason, it is removed.
69
-            if(!is_numeric($numbers[0])) {
70
-                $numbers[0] = (string) (float) $numbers[0];
71
-            }
72
-            return bcadd($numbers[0], $numbers[1], static::$scale);
73
-        }
74
-        $result = '0';
75
-        foreach ($numbers as $number) {
76
-            $result = bcadd($result, $number, static::$scale);
77
-        }
78
-        return $result;
79
-    }
80
-
81
-    /**
82
-     * Subtract two numbers.
83
-     *
84
-     * @params string[] $numbers
85
-     *
86
-     * @param string[] $numbers
87
-     *
88
-     * @return string
89
-     */
90
-    public static function sub(string ...$numbers)
91
-    {
92
-        if (!isset($numbers[2])) {
93
-            return bcsub($numbers[0], $numbers[1], static::$scale);
94
-        }
95
-        $result = $numbers[0];
96
-        for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
97
-            $result = bcsub($result, $numbers[$i], static::$scale);
98
-        }
99
-
100
-        return $result;
101
-    }
102
-
103
-    /**
104
-     * Multiply numbers.
105
-     *
106
-     * @param string[] $numbers
107
-     *
108
-     * @return mixed|string
109
-     */
110
-    public static function mul(string ...$numbers)
111
-    {
112
-        if (!isset($numbers[2])) {
113
-            return bcmul($numbers[0], $numbers[1], static::$scale);
114
-        }
115
-        $result = '1';
116
-        foreach ($numbers as $number) {
117
-            $result = bcmul($result, $number, static::$scale);
118
-        }
119
-
120
-        return $result;
121
-    }
122
-
123
-    /**
124
-     * Divide two numbers.
125
-     *
126
-     * @params string[] $numbers
127
-     *
128
-     * @param string[] $numbers
129
-     *
130
-     * @return string
131
-     */
132
-    public static function div(string ...$numbers)
133
-    {
134
-        if (!isset($numbers[2])) {
135
-            if ((float) $numbers[0] !== (float) 0 && (float) $numbers[1] !== (float) 0) {
136
-                return bcdiv($numbers[0], $numbers[1], static::$scale);
137
-            }
138
-
139
-            return '0';
140
-        }
141
-        $result = $numbers[0];
142
-        for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
143
-            if ((float) $numbers[$i] === (float) 0) {
144
-                return '0';
145
-            }
146
-            $result = bcdiv($result, $numbers[$i], static::$scale);
147
-        }
148
-
149
-        return $result;
150
-    }
151
-
152
-    /**
153
-     * Compare two numbers.
154
-     *
155
-     * @param string $left
156
-     * @param string $right
157
-     *
158
-     * @return string
159
-     */
160
-    public static function comp(string $left, string $right)
161
-    {
162
-        return bccomp($left, $right, static::$scale);
163
-    }
164
-
165
-    /**
166
-     * Get max number.
167
-     *
168
-     * @param string ...$numbers
169
-     *
170
-     * @return string
171
-     */
172
-    public static function max(string ...$numbers)
173
-    {
174
-        $result = '0';
175
-        foreach ($numbers as $number) {
176
-            $result = 1 === bccomp($number, $result, static::$scale) ? $number : $result;
177
-        }
178
-        return $result;
179
-    }
180
-
181
-    /**
182
-     * Get min number.
183
-     *
184
-     * @param string ...$numbers
185
-     *
186
-     * @return string
187
-     */
188
-    public static function min(string ...$numbers)
189
-    {
190
-        $result = $numbers[0];
191
-        for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
192
-            $result = 1 === bccomp($result, $numbers[$i], static::$scale) ? $numbers[$i] : $result;
193
-        }
194
-
195
-        return $result;
196
-    }
197
-
198
-    /**
199
-     * Get percent from value.
200
-     *
201
-     * @param string $percent
202
-     * @param string $from
203
-     *
204
-     * @return mixed|string
205
-     */
206
-    public static function percent(string $percent, string $from)
207
-    {
208
-        $percent = trim($percent, '%');
209
-
210
-        return static::mul(static::div($from, '100'), $percent);
211
-    }
21
+	/**
22
+	 * Current scale = precision.
23
+	 *
24
+	 * @var int
25
+	 */
26
+	public static $scale = 2;
27
+
28
+	/**
29
+	 * Standard scale = precision.
30
+	 *
31
+	 * @var int
32
+	 */
33
+	public static $standardScale = 2;
34
+
35
+	/**
36
+	 * High scale for more accurate calculations when needed (ratio for example).
37
+	 *
38
+	 * @var int
39
+	 */
40
+	public static $highScale = 6;
41
+
42
+	/**
43
+	 * Set more accurate calculation.
44
+	 *
45
+	 * @param bool $accurate
46
+	 */
47
+	public static function setAccurate(bool $accurate)
48
+	{
49
+		if ($accurate) {
50
+			static::$scale = static::$highScale;
51
+		} else {
52
+			static::$scale = static::$standardScale;
53
+		}
54
+	}
55
+
56
+	/**
57
+	 * Add two numbers.
58
+	 *
59
+	 * @params string[] $numbers
60
+	 *
61
+	 * @param string[] $numbers
62
+	 *
63
+	 * @return string
64
+	 */
65
+	public static function add(string ...$numbers)
66
+	{
67
+		if (!isset($numbers[2])) {
68
+			// % is not fully supported, so if % appears here for some reason, it is removed.
69
+			if(!is_numeric($numbers[0])) {
70
+				$numbers[0] = (string) (float) $numbers[0];
71
+			}
72
+			return bcadd($numbers[0], $numbers[1], static::$scale);
73
+		}
74
+		$result = '0';
75
+		foreach ($numbers as $number) {
76
+			$result = bcadd($result, $number, static::$scale);
77
+		}
78
+		return $result;
79
+	}
80
+
81
+	/**
82
+	 * Subtract two numbers.
83
+	 *
84
+	 * @params string[] $numbers
85
+	 *
86
+	 * @param string[] $numbers
87
+	 *
88
+	 * @return string
89
+	 */
90
+	public static function sub(string ...$numbers)
91
+	{
92
+		if (!isset($numbers[2])) {
93
+			return bcsub($numbers[0], $numbers[1], static::$scale);
94
+		}
95
+		$result = $numbers[0];
96
+		for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
97
+			$result = bcsub($result, $numbers[$i], static::$scale);
98
+		}
99
+
100
+		return $result;
101
+	}
102
+
103
+	/**
104
+	 * Multiply numbers.
105
+	 *
106
+	 * @param string[] $numbers
107
+	 *
108
+	 * @return mixed|string
109
+	 */
110
+	public static function mul(string ...$numbers)
111
+	{
112
+		if (!isset($numbers[2])) {
113
+			return bcmul($numbers[0], $numbers[1], static::$scale);
114
+		}
115
+		$result = '1';
116
+		foreach ($numbers as $number) {
117
+			$result = bcmul($result, $number, static::$scale);
118
+		}
119
+
120
+		return $result;
121
+	}
122
+
123
+	/**
124
+	 * Divide two numbers.
125
+	 *
126
+	 * @params string[] $numbers
127
+	 *
128
+	 * @param string[] $numbers
129
+	 *
130
+	 * @return string
131
+	 */
132
+	public static function div(string ...$numbers)
133
+	{
134
+		if (!isset($numbers[2])) {
135
+			if ((float) $numbers[0] !== (float) 0 && (float) $numbers[1] !== (float) 0) {
136
+				return bcdiv($numbers[0], $numbers[1], static::$scale);
137
+			}
138
+
139
+			return '0';
140
+		}
141
+		$result = $numbers[0];
142
+		for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
143
+			if ((float) $numbers[$i] === (float) 0) {
144
+				return '0';
145
+			}
146
+			$result = bcdiv($result, $numbers[$i], static::$scale);
147
+		}
148
+
149
+		return $result;
150
+	}
151
+
152
+	/**
153
+	 * Compare two numbers.
154
+	 *
155
+	 * @param string $left
156
+	 * @param string $right
157
+	 *
158
+	 * @return string
159
+	 */
160
+	public static function comp(string $left, string $right)
161
+	{
162
+		return bccomp($left, $right, static::$scale);
163
+	}
164
+
165
+	/**
166
+	 * Get max number.
167
+	 *
168
+	 * @param string ...$numbers
169
+	 *
170
+	 * @return string
171
+	 */
172
+	public static function max(string ...$numbers)
173
+	{
174
+		$result = '0';
175
+		foreach ($numbers as $number) {
176
+			$result = 1 === bccomp($number, $result, static::$scale) ? $number : $result;
177
+		}
178
+		return $result;
179
+	}
180
+
181
+	/**
182
+	 * Get min number.
183
+	 *
184
+	 * @param string ...$numbers
185
+	 *
186
+	 * @return string
187
+	 */
188
+	public static function min(string ...$numbers)
189
+	{
190
+		$result = $numbers[0];
191
+		for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
192
+			$result = 1 === bccomp($result, $numbers[$i], static::$scale) ? $numbers[$i] : $result;
193
+		}
194
+
195
+		return $result;
196
+	}
197
+
198
+	/**
199
+	 * Get percent from value.
200
+	 *
201
+	 * @param string $percent
202
+	 * @param string $from
203
+	 *
204
+	 * @return mixed|string
205
+	 */
206
+	public static function percent(string $percent, string $from)
207
+	{
208
+		$percent = trim($percent, '%');
209
+
210
+		return static::mul(static::div($from, '100'), $percent);
211
+	}
212 212
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
     {
67 67
         if (!isset($numbers[2])) {
68 68
             // % is not fully supported, so if % appears here for some reason, it is removed.
69
-            if(!is_numeric($numbers[0])) {
69
+            if (!is_numeric($numbers[0])) {
70 70
                 $numbers[0] = (string) (float) $numbers[0];
71 71
             }
72 72
             return bcadd($numbers[0], $numbers[1], static::$scale);
@@ -93,7 +93,7 @@  discard block
 block discarded – undo
93 93
             return bcsub($numbers[0], $numbers[1], static::$scale);
94 94
         }
95 95
         $result = $numbers[0];
96
-        for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
96
+        for ($i = 1, $len = \count($numbers); $i < $len; ++$i) {
97 97
             $result = bcsub($result, $numbers[$i], static::$scale);
98 98
         }
99 99
 
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
             return '0';
140 140
         }
141 141
         $result = $numbers[0];
142
-        for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
142
+        for ($i = 1, $len = \count($numbers); $i < $len; ++$i) {
143 143
             if ((float) $numbers[$i] === (float) 0) {
144 144
                 return '0';
145 145
             }
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
     public static function min(string ...$numbers)
189 189
     {
190 190
         $result = $numbers[0];
191
-        for ($i = 1,$len = \count($numbers); $i < $len; ++$i) {
191
+        for ($i = 1, $len = \count($numbers); $i < $len; ++$i) {
192 192
             $result = 1 === bccomp($result, $numbers[$i], static::$scale) ? $numbers[$i] : $result;
193 193
         }
194 194
 
Please login to merge, or discard this patch.