Skip to content

Commit 4f9fb9d

Browse files
committed
Merge branch '2.5' into 3.0
2 parents bb6ef64 + 89b6051 commit 4f9fb9d

24 files changed

+233
-427
lines changed

tests/Transformers/BM25TransformerTest.php

+9-27
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,13 @@
88
use Rubix\ML\Transformers\Transformer;
99
use Rubix\ML\Transformers\BM25Transformer;
1010
use PHPUnit\Framework\TestCase;
11-
use Rubix\ML\Exceptions\RuntimeException;
1211

1312
/**
1413
* @group Transformers
1514
* @covers \Rubix\ML\Transformers\BM25Transformer
1615
*/
1716
class BM25TransformerTest extends TestCase
1817
{
19-
/**
20-
* @var \Rubix\ML\Datasets\Unlabeled
21-
*/
22-
protected $dataset;
23-
2418
/**
2519
* @var \Rubix\ML\Transformers\BM25Transformer
2620
*/
@@ -31,12 +25,6 @@ class BM25TransformerTest extends TestCase
3125
*/
3226
protected function setUp() : void
3327
{
34-
$this->dataset = new Unlabeled([
35-
[1, 3, 0, 0, 1, 0, 0, 0, 1, 2, 0, 2, 0, 0, 0, 4, 1, 0, 1],
36-
[0, 1, 1, 0, 0, 2, 1, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0],
37-
[0, 0, 0, 1, 2, 3, 0, 0, 4, 2, 0, 0, 1, 0, 2, 0, 1, 0, 0],
38-
]);
39-
4028
$this->transformer = new BM25Transformer(1.2, 0.75);
4129
}
4230

@@ -56,7 +44,13 @@ public function build() : void
5644
*/
5745
public function fitTransform() : void
5846
{
59-
$this->transformer->fit($this->dataset);
47+
$dataset = new Unlabeled([
48+
[1, 3, 0, 0, 1, 0, 0, 0, 1, 2, 0, 2, 0, 0, 0, 4, 1, 0, 1],
49+
[0, 1, 1, 0, 0, 2, 1, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0],
50+
[0, 0, 0, 1, 2, 3, 0, 0, 4, 2, 0, 0, 1, 0, 2, 0, 1, 0, 0],
51+
]);
52+
53+
$this->transformer->fit($dataset);
6054

6155
$this->assertTrue($this->transformer->fitted());
6256

@@ -66,26 +60,14 @@ public function fitTransform() : void
6660
$this->assertCount(19, $dfs);
6761
$this->assertContainsOnly('int', $dfs);
6862

69-
$this->dataset->apply($this->transformer);
63+
$dataset->apply($this->transformer);
7064

7165
$expected = [
7266
[0.2562582002070131, 0.22742881339794754, 0.0, 0.0, 0.13186359514416618, 0.0, 0.0, 0.0, 0.13186359514416618, 0.19254341937443092, 0.0, 0.19254341937443092, 0.0, 0.0, 0.0, 0.4860031535349766, 0.13186359514416618, 0.0, 0.2562582002070131],
7367
[0.0, 0.17063795450977862, 0.3316106698128093, 0.0, 0.0, 0.23083934808978732, 0.3316106698128093, 0.0, 0.0, 0.0, 0.0, 0.26160416281731713, 0.0, 0.3316106698128093, 0.0, 0.0, 0.0, 0.0, 0.0],
7468
[0.0, 0.0, 0.0, 0.2562582002070131, 0.19254341937443092, 0.22742881339794754, 0.0, 0.0, 0.25008418471976107, 0.19254341937443092, 0.0, 0.0, 0.2562582002070131, 0.0, 0.3741808347986538, 0.0, 0.13186359514416618, 0.0, 0.0],
7569
];
7670

77-
$this->assertEquals($expected, $this->dataset->samples());
78-
}
79-
80-
/**
81-
* @test
82-
*/
83-
public function transformUnfitted() : void
84-
{
85-
$this->expectException(RuntimeException::class);
86-
87-
$samples = $this->dataset->samples();
88-
89-
$this->transformer->transform($samples);
71+
$this->assertEqualsWithDelta($expected, $dataset->samples(), 1e-8);
9072
}
9173
}

tests/Transformers/BooleanConverterTest.php

+13-16
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@
1313
*/
1414
class BooleanConverterTest extends TestCase
1515
{
16-
/**
17-
* @var \Rubix\ML\Datasets\Unlabeled
18-
*/
19-
protected $dataset;
20-
2116
/**
2217
* @var \Rubix\ML\Transformers\BooleanConverter
2318
*/
@@ -28,12 +23,7 @@ class BooleanConverterTest extends TestCase
2823
*/
2924
protected function setUp() : void
3025
{
31-
$this->dataset = new Unlabeled([
32-
[true, 'true', '1', 1],
33-
[false, 'false', '0', 0],
34-
]);
35-
36-
$this->transformer = new BooleanConverter('::true::', '::false::');
26+
$this->transformer = new BooleanConverter('!true!', '!false!');
3727
}
3828

3929
/**
@@ -50,11 +40,18 @@ public function build() : void
5040
*/
5141
public function transform() : void
5242
{
53-
$this->dataset->apply($this->transformer);
43+
$dataset = new Unlabeled([
44+
[true, 'true', '1', 1],
45+
[false, 'false', '0', 0],
46+
]);
47+
48+
$dataset->apply($this->transformer);
49+
50+
$expected = [
51+
['!true!', 'true', '1', 1],
52+
['!false!', 'false', '0', 0],
53+
];
5454

55-
$this->assertEquals([
56-
['::true::', 'true', '1', 1],
57-
['::false::', 'false', '0', 0],
58-
], $this->dataset->samples());
55+
$this->assertEquals($expected, $dataset->samples());
5956
}
6057
}

tests/Transformers/GaussianRandomProjectorTest.php

+3-12
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class GaussianRandomProjectorTest extends TestCase
3838
*/
3939
protected function setUp() : void
4040
{
41-
$this->generator = new Blob(array_fill(0, 10, 0.0), 3.0);
41+
$this->generator = new Blob(array_fill(0, 20, 0.0), 3.0);
4242

4343
$this->transformer = new GaussianRandomProjector(5);
4444

@@ -99,26 +99,17 @@ public function minDimensionsProvider() : Generator
9999
*/
100100
public function fitTransform() : void
101101
{
102-
$this->assertCount(10, $this->generator->generate(1)->sample(0));
102+
$dataset = $this->generator->generate(30);
103103

104-
$this->transformer->fit($this->generator->generate(30));
104+
$this->transformer->fit($dataset);
105105

106106
$this->assertTrue($this->transformer->fitted());
107107

108-
$expected = [
109-
-1.5798504291401145,
110-
13.861277276658175,
111-
6.8204901690218,
112-
1.0068840164872395,
113-
-13.878216040342053,
114-
];
115-
116108
$sample = $this->generator->generate(1)
117109
->apply($this->transformer)
118110
->sample(0);
119111

120112
$this->assertCount(5, $sample);
121-
$this->assertEqualsWithDelta($expected, $sample, 1e-8);
122113
}
123114

124115
/**

tests/Transformers/HotDeckImputerTest.php

+13-31
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use Rubix\ML\Transformers\Transformer;
88
use Rubix\ML\Datasets\Generators\Blob;
99
use Rubix\ML\Transformers\HotDeckImputer;
10-
use Rubix\ML\Exceptions\RuntimeException;
1110
use PHPUnit\Framework\TestCase;
1211

1312
/**
@@ -18,11 +17,6 @@ class HotDeckImputerTest extends TestCase
1817
{
1918
protected const RANDOM_SEED = 0;
2019

21-
/**
22-
* @var \Rubix\ML\Datasets\Unlabeled
23-
*/
24-
protected $dataset;
25-
2620
/**
2721
* @var \Rubix\ML\Datasets\Generators\Blob
2822
*/
@@ -38,15 +32,6 @@ class HotDeckImputerTest extends TestCase
3832
*/
3933
protected function setUp() : void
4034
{
41-
$this->dataset = new Unlabeled([
42-
[30, 0.001],
43-
[NAN, 0.055],
44-
[50, -2.0],
45-
[60, NAN],
46-
[10, 1.0],
47-
[100, 9.0],
48-
]);
49-
5035
$this->generator = new Blob([30.0, 0.0]);
5136

5237
$this->transformer = new HotDeckImputer(2, true, '?');
@@ -69,25 +54,22 @@ public function build() : void
6954
*/
7055
public function fitTransform() : void
7156
{
72-
$this->transformer->fit($this->dataset);
73-
74-
$this->assertTrue($this->transformer->fitted());
75-
76-
$this->dataset->apply($this->transformer);
57+
$dataset = new Unlabeled([
58+
[30, 0.001],
59+
[NAN, 0.055],
60+
[50, -2.0],
61+
[60, NAN],
62+
[10, 1.0],
63+
[100, 9.0],
64+
]);
7765

78-
$this->assertEquals(30, $this->dataset[1][0]);
79-
$this->assertEquals(-2.0, $this->dataset[3][1]);
80-
}
66+
$this->transformer->fit($dataset);
8167

82-
/**
83-
* @test
84-
*/
85-
public function transformUnfitted() : void
86-
{
87-
$this->expectException(RuntimeException::class);
68+
$this->assertTrue($this->transformer->fitted());
8869

89-
$samples = $this->dataset->samples();
70+
$dataset->apply($this->transformer);
9071

91-
$this->transformer->transform($samples);
72+
$this->assertEquals(30, $dataset[1][0]);
73+
$this->assertEquals(-2.0, $dataset[3][1]);
9274
}
9375
}

tests/Transformers/ImageResizerTest.php

+6-11
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@
1414
*/
1515
class ImageResizerTest extends TestCase
1616
{
17-
/**
18-
* @var \Rubix\ML\Datasets\Unlabeled
19-
*/
20-
protected $dataset;
21-
2217
/**
2318
* @var \Rubix\ML\Transformers\ImageResizer
2419
*/
@@ -29,10 +24,6 @@ class ImageResizerTest extends TestCase
2924
*/
3025
protected function setUp() : void
3126
{
32-
$this->dataset = Unlabeled::quick([
33-
[imagecreatefrompng('./tests/test.png'), 'whatever'],
34-
]);
35-
3627
$this->transformer = new ImageResizer(32, 32);
3728
}
3829

@@ -50,9 +41,13 @@ public function build() : void
5041
*/
5142
public function transform() : void
5243
{
53-
$this->dataset->apply($this->transformer);
44+
$dataset = Unlabeled::quick([
45+
[imagecreatefrompng('./tests/test.png'), 'whatever', 69],
46+
]);
47+
48+
$dataset->apply($this->transformer);
5449

55-
$sample = $this->dataset->sample(0);
50+
$sample = $dataset->sample(0);
5651

5752
$image = $sample[0];
5853

tests/Transformers/ImageRotatorTest.php

+8-13
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@
1414
*/
1515
class RandomizedImageRotatorTest extends TestCase
1616
{
17-
/**
18-
* @var \Rubix\ML\Datasets\Unlabeled
19-
*/
20-
protected \Rubix\ML\Datasets\Unlabeled $dataset;
21-
2217
/**
2318
* @var \Rubix\ML\Transformers\ImageRotator
2419
*/
@@ -29,10 +24,6 @@ class RandomizedImageRotatorTest extends TestCase
2924
*/
3025
protected function setUp() : void
3126
{
32-
$this->dataset = Unlabeled::quick([
33-
[imagecreatefrompng('./tests/test.png'), 'whatever'],
34-
]);
35-
3627
$this->transformer = new ImageRotator(0.0, 1.0);
3728
}
3829

@@ -50,22 +41,26 @@ public function build() : void
5041
*/
5142
public function transform() : void
5243
{
44+
$dataset = Unlabeled::quick([
45+
[imagecreatefrompng('./tests/test.png'), 'whatever', 69],
46+
]);
47+
5348
$mock = $this->createPartialMock(ImageRotator::class, ['rotationAngle']);
5449

5550
$mock->method('rotationAngle')->will($this->returnValue(-180.0));
5651

57-
$expected = file_get_contents('./tests/test_rotated.png');
58-
59-
$this->dataset->apply($mock);
52+
$dataset->apply($mock);
6053

61-
$sample = $this->dataset->sample(0);
54+
$sample = $dataset->sample(0);
6255

6356
ob_start();
6457

6558
imagepng($sample[0]);
6659

6760
$raw = ob_get_clean();
6861

62+
$expected = file_get_contents('./tests/test_rotated.png');
63+
6964
$this->assertEquals($expected, $raw);
7065
}
7166
}

tests/Transformers/ImageVectorizerTest.php

+17-24
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616
*/
1717
class ImageVectorizerTest extends TestCase
1818
{
19-
/**
20-
* @var \Rubix\ML\Datasets\Unlabeled
21-
*/
22-
protected $dataset;
23-
2419
/**
2520
* @var \Rubix\ML\Transformers\ImageVectorizer
2621
*/
@@ -31,10 +26,6 @@ class ImageVectorizerTest extends TestCase
3126
*/
3227
protected function setUp() : void
3328
{
34-
$this->dataset = Unlabeled::quick([
35-
[imagecreatefrompng('tests/test.png'), 'something else'],
36-
]);
37-
3829
$this->transformer = new ImageVectorizer(false);
3930
}
4031

@@ -48,22 +39,24 @@ public function build() : void
4839
$this->assertInstanceOf(Stateful::class, $this->transformer);
4940
}
5041

51-
// Commented out due to GD extension bug.
52-
//
53-
// /**
54-
// * @test
55-
// */
56-
// public function fitTransform() : void
57-
// {
58-
// $this->dataset->apply(new ImageResizer(3, 3));
42+
/**
43+
* @test
44+
*/
45+
public function fitTransform() : void
46+
{
47+
$dataset = Unlabeled::quick([
48+
[imagecreatefrompng('tests/test.png'), 'something else'],
49+
]);
50+
51+
$dataset->apply(new ImageResizer(3, 3));
5952

60-
// $this->dataset->apply($this->transformer);
53+
$dataset->apply($this->transformer);
6154

62-
// $expected = [
63-
// ['something else', 46, 51, 66, 130, 135, 134, 118, 119, 116, 25, 26, 45, 149, 154, 154, 180,
64-
// 183, 170, 39, 39, 54, 77, 80, 89, 141, 140, 132],
65-
// ];
55+
$expected = [
56+
['something else', 46, 51, 66, 130, 135, 134, 118, 119, 116, 25, 26, 45, 149, 154, 154, 180,
57+
183, 170, 39, 39, 54, 77, 80, 89, 141, 140, 132],
58+
];
6659

67-
// $this->assertEquals($expected, $this->dataset->samples());
68-
// }
60+
$this->assertEquals($expected, $dataset->samples());
61+
}
6962
}

0 commit comments

Comments
 (0)