Skip to content
This repository was archived by the owner on Mar 12, 2023. It is now read-only.

Commit 5861147

Browse files
committed
add some tests
1 parent 92ef0c3 commit 5861147

File tree

5 files changed

+63
-18
lines changed

5 files changed

+63
-18
lines changed

src/Regression/LogarithmicRegression.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public function calculate()
5353
$this->resultSequence[] = $coordinate;
5454
}
5555

56-
$this->equation = sprintf('y = %s + %s ln(x)', round($A, 2), round($B, 2));
56+
$this->equation = sprintf('y = %s + %sln(x)', round($A, 2), round($B, 2));
5757

5858
$this->push();
5959
}

tests/ExponentialRegressionTest.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use PHPUnit_Framework_TestCase;
77
use Regression\ExponentialRegression;
88
use Regression\RegressionException;
9+
use Regression\RegressionFactory;
910
use Regression\RegressionModel;
1011

1112
/**
@@ -18,24 +19,30 @@ class ExponentialRegressionTest extends PHPUnit_Framework_TestCase
1819
/**
1920
* @var array
2021
*/
21-
private $testData;
22+
private $rows;
2223

2324
/**
2425
*
2526
*/
2627
public function setUp()
2728
{
28-
$this->testData = [
29+
$this->rows[0] = [
2930
[1, 10], [2, 30], [3, 68], [4, 130], [5, 222], [6, 350], [7, 520], [8, 738], [9, 1010], [10, 1342]
3031
];
32+
/**
33+
* Another dataSet
34+
*/
35+
$this->rows[1] = [
36+
[1, 11], [2, 13], [3, 13], [4, 14], [5, 16], [6, 16], [7, 13], [8, 13]
37+
];
3138
}
3239

3340
/**
3441
*
3542
*/
3643
public function tearDown()
3744
{
38-
$this->testData = null;
45+
$this->rows = null;
3946
}
4047

4148
/**
@@ -44,7 +51,7 @@ public function tearDown()
4451
public function testCalculate()
4552
{
4653
$linear = new ExponentialRegression();
47-
$linear->setSourceSequence($this->testData);
54+
$linear->setSourceSequence($this->rows[0]);
4855
$linear->calculate();
4956

5057
/** @var RegressionModel $regressionModel */
@@ -54,5 +61,11 @@ public function testCalculate()
5461
$this->assertEquals(1470, round($regressionModel->getResultSequence()[9][1]));
5562
$this->assertEquals(997, round($regressionModel->getResultSequence()[8][1]));
5663
$this->assertEquals(676, round($regressionModel->getResultSequence()[7][1]));
64+
65+
$regressionModel = RegressionFactory::exponential($this->rows[1]);
66+
$this->assertEquals('y = 12.36+ e^(0.02x)', $regressionModel->getEquation());
67+
$this->assertEquals(13, round($regressionModel->getResultSequence()[0][1]));
68+
$this->assertEquals(13, round($regressionModel->getResultSequence()[1][1]));
69+
$this->assertEquals(13, round($regressionModel->getResultSequence()[2][1]));
5770
}
5871
}

tests/LinearRegressionTest.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use PHPUnit_Framework_TestCase;
66
use Regression\LinearRegression;
77
use Regression\RegressionException;
8+
use Regression\RegressionFactory;
89
use Regression\RegressionModel;
910

1011
/**
@@ -18,24 +19,30 @@ class LinearRegressionTest extends PHPUnit_Framework_TestCase
1819
/**
1920
* @var array
2021
*/
21-
private $testData;
22+
private $rows;
2223

2324
/**
2425
*
2526
*/
2627
public function setUp()
2728
{
28-
$this->testData = [
29+
$this->rows[0] = [
2930
[1, 10], [2, 30], [3, 68], [4, 130], [5, 222], [6, 350], [7, 520], [8, 738], [9, 1010], [10, 1342]
3031
];
32+
/**
33+
* Another dataSet
34+
*/
35+
$this->rows[1] = [
36+
[1, 11], [2, 13], [3, 13], [4, 14], [5, 16], [6, 16], [7, 13], [8, 13]
37+
];
3138
}
3239

3340
/**
3441
*
3542
*/
3643
public function tearDown()
3744
{
38-
$this->testData = null;
45+
$this->rows = null;
3946
}
4047

4148
/**
@@ -44,7 +51,7 @@ public function tearDown()
4451
public function testCalculate()
4552
{
4653
$linear = new LinearRegression();
47-
$linear->setSourceSequence($this->testData);
54+
$linear->setSourceSequence($this->rows[0]);
4855
$linear->calculate();
4956

5057
/** @var RegressionModel $regressionModel */
@@ -54,5 +61,11 @@ public function testCalculate()
5461
$this->assertEquals(1083, round($regressionModel->getResultSequence()[9][1]));
5562
$this->assertEquals(940, round($regressionModel->getResultSequence()[8][1]));
5663
$this->assertEquals(798, round($regressionModel->getResultSequence()[7][1]));
64+
65+
$regressionModel = RegressionFactory::linear($this->rows[1]);
66+
$this->assertEquals('y = 0.3x + 12.3', $regressionModel->getEquation());
67+
$this->assertEquals(13, round($regressionModel->getResultSequence()[0][1]));
68+
$this->assertEquals(13, round($regressionModel->getResultSequence()[1][1]));
69+
$this->assertEquals(13, round($regressionModel->getResultSequence()[2][1]));
5770
}
5871
}

tests/LogarithmicRegressionTest.php

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use PHPUnit_Framework_TestCase;
77
use Regression\LogarithmicRegression;
88
use Regression\RegressionException;
9+
use Regression\RegressionFactory;
910
use Regression\RegressionModel;
1011

1112
/**
@@ -18,24 +19,30 @@ class LogarithmicRegressionTest extends PHPUnit_Framework_TestCase
1819
/**
1920
* @var array
2021
*/
21-
private $testData;
22+
private $rows;
2223

2324
/**
2425
*
2526
*/
2627
public function setUp()
2728
{
28-
$this->testData = [
29+
$this->rows[0] = [
2930
[1, 10], [2, 30], [3, 68], [4, 130], [5, 222], [6, 350], [7, 520], [8, 738], [9, 1010], [10, 1342]
3031
];
32+
/**
33+
* Another dataSet
34+
*/
35+
$this->rows[1] = [
36+
[1, 11], [2, 13], [3, 13], [4, 14], [5, 16], [6, 16], [7, 13], [8, 13]
37+
];
3138
}
3239

3340
/**
3441
*
3542
*/
3643
public function tearDown()
3744
{
38-
$this->testData = null;
45+
$this->rows = null;
3946
}
4047

4148
/**
@@ -44,15 +51,21 @@ public function tearDown()
4451
public function testCalculate()
4552
{
4653
$linear = new LogarithmicRegression();
47-
$linear->setSourceSequence($this->testData);
54+
$linear->setSourceSequence($this->rows[0]);
4855
$linear->calculate();
4956

5057
/** @var RegressionModel $regressionModel */
5158
$regressionModel = $linear->getRegressionModel();
5259

53-
$this->assertEquals('y = -320.03 + 504.51 ln(x)', $regressionModel->getEquation());
60+
$this->assertEquals('y = -320.03 + 504.51ln(x)', $regressionModel->getEquation());
5461
$this->assertEquals(842, round($regressionModel->getResultSequence()[9][1]));
5562
$this->assertEquals(788, round($regressionModel->getResultSequence()[8][1]));
5663
$this->assertEquals(729, round($regressionModel->getResultSequence()[7][1]));
64+
65+
$regressionModel = RegressionFactory::logarithmic($this->rows[1]);
66+
$this->assertEquals('y = 11.73 + 1.43ln(x)', $regressionModel->getEquation());
67+
$this->assertEquals(12, round($regressionModel->getResultSequence()[0][1]));
68+
$this->assertEquals(13, round($regressionModel->getResultSequence()[1][1]));
69+
$this->assertEquals(13, round($regressionModel->getResultSequence()[2][1]));
5770
}
5871
}

tests/PowerRegressionTest.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,30 @@ class PowerRegressionTest extends PHPUnit_Framework_TestCase
1717
/**
1818
* @var array
1919
*/
20-
private $testData;
20+
private $rows;
2121

2222
/**
2323
*
2424
*/
2525
public function setUp()
2626
{
27-
$this->testData = [
27+
$this->rows = [
2828
[1, 10], [2, 30], [3, 68], [4, 130], [5, 222], [6, 350], [7, 520], [8, 738], [9, 1010], [10, 1342]
2929
];
30+
/**
31+
* Another dataSet
32+
*/
33+
$this->rows[1] = [
34+
[1, 11], [2, 13], [3, 13], [4, 14], [5, 16], [6, 16], [7, 13], [8, 13]
35+
];
3036
}
3137

3238
/**
3339
*
3440
*/
3541
public function tearDown()
3642
{
37-
$this->testData = null;
43+
$this->rows = null;
3844
}
3945

4046
/**
@@ -43,7 +49,7 @@ public function tearDown()
4349
public function testCalculate()
4450
{
4551
$linear = new PowerRegression();
46-
$linear->setSourceSequence($this->testData);
52+
$linear->setSourceSequence($this->rows);
4753
$linear->calculate();
4854

4955
/** @var RegressionModel $regressionModel */

0 commit comments

Comments
 (0)