Perceptron (unfinished)
This commit is contained in:
39
test/machine_learning/perceptron/PerceptronTest.java
Normal file
39
test/machine_learning/perceptron/PerceptronTest.java
Normal file
@ -0,0 +1,39 @@
|
||||
package machine_learning.perceptron;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestInstance;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
class PerceptronTest
|
||||
{
|
||||
List<Vector> positives;
|
||||
List<Vector> negatives;
|
||||
|
||||
@BeforeAll
|
||||
void initLearnData()
|
||||
{
|
||||
this.positives = new ArrayList<>(List.of(
|
||||
new Vector(List.of(8d, 4d)),
|
||||
new Vector(List.of(8d, 6d)),
|
||||
new Vector(List.of(9d, 2d)),
|
||||
new Vector(List.of(9d, 5d)))
|
||||
);
|
||||
|
||||
this.negatives = new ArrayList<>(List.of(
|
||||
new Vector(List.of(6d, 1d)),
|
||||
new Vector(List.of(7d, 3d)),
|
||||
new Vector(List.of(8d, 2d)),
|
||||
new Vector(List.of(9d, 0d)))
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldClassifyCorrect()
|
||||
{
|
||||
new Perceptron().learn(this.positives, this.negatives);
|
||||
}
|
||||
}
|
58
test/machine_learning/perceptron/VectorTest.java
Normal file
58
test/machine_learning/perceptron/VectorTest.java
Normal file
@ -0,0 +1,58 @@
|
||||
package machine_learning.perceptron;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class VectorTest
|
||||
{
|
||||
|
||||
@Test
|
||||
void shouldInitializeZeroVector()
|
||||
{
|
||||
var v = new Vector(3);
|
||||
|
||||
var expected = new Vector(List.of(0d, 0d, 0d));
|
||||
|
||||
assertEquals(3, v.dimension());
|
||||
assertEquals(expected, v);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnCorrectVectorWhenAdding()
|
||||
{
|
||||
var v1 = new Vector(List.of(1d, 2d));
|
||||
var v2 = new Vector(List.of(3d, 4d));
|
||||
|
||||
var result = v1.add(v2);
|
||||
var expected = new Vector(List.of(4d, 6d));
|
||||
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnCorrectVectorWhenSubtracting()
|
||||
{
|
||||
var v1 = new Vector(List.of(1d, 2d));
|
||||
var v2 = new Vector(List.of(3d, 4d));
|
||||
|
||||
var result = v1.subtract(v2);
|
||||
var expected = new Vector(List.of(-2d, -2d));
|
||||
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnCorrectVectorWhenScalar()
|
||||
{
|
||||
var v1 = new Vector(List.of(1d, 2d));
|
||||
var v2 = new Vector(List.of(3d, 4d));
|
||||
|
||||
var result = v1.scalar(v2);
|
||||
var expected = 11d;
|
||||
|
||||
assertEquals(expected, result);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user