public void RansacLineConstructorTest()
{
Point[] points = new Point[500];
{
for (int i = 0; i < points.Length; i++)
{
double x = i;
double y = i; //+ 5 * Accord.Math.Tools.Random.NextDouble();
points[i] = new Point((float)x, (float)y);
}
RansacLine target = new RansacLine(0.80, 0.9);
Line actual = target.Estimate(points);
Line expected = Line.FromPoints(points[0], points[499]);
Assert.AreEqual(expected.Slope, actual.Slope, 1e-3);
Assert.AreEqual(expected.Intercept, actual.Intercept, 1e-2);
}
{
for (int i = 0; i < points.Length; i++)
{
double x = i;
double y = i + 5 * Accord.Math.Tools.Random.NextDouble();
points[i] = new Point((float)x, (float)y);
}
RansacLine target = new RansacLine(0.80, 0.9);
Line actual = target.Estimate(points);
Assert.AreEqual(1.0, actual.Slope, 1e-3);
Assert.AreEqual(0.0, actual.Intercept, 1e-2);
}
{
for (int i = 0; i < points.Length; i++)
{
double x = i + 50;
double y = i + 50 + 5 * Accord.Math.Tools.Random.NextDouble();
points[i] = new Point((float)x, (float)y);
}
RansacLine target = new RansacLine(0.80, 0.9);
Line actual = target.Estimate(points);
Assert.AreEqual(1.0, actual.Slope, 1e-3);
Assert.AreEqual(0.0, actual.Intercept, 1e-2);
}
}