/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.graphene;
import org.diirt.util.stats.Range;
import java.util.Random;
import org.diirt.util.array.ArrayDouble;
/**
*
* @author carcassi
*/
public class Point2DTestDatasets {
public static Point2DDataset sineDataset(int nSamples, int wavelengthInSamples, double initialAngleInRad, double amplitude, double average, Range xRange) {
double[] data = new double[nSamples];
for (int j = 0; j < nSamples; j++) {
data[j] = amplitude * Math.sin(j * 2.0 * Math.PI / wavelengthInSamples + initialAngleInRad) + average;
}
return Point2DDatasets.lineData(xRange, new ArrayDouble(data));
}
public static double[] randomDataset() {
Random rand = new Random(1);
int nSamples = 100000;
double[] waveform = new double[nSamples];
for (int i = 0; i < nSamples; i++) {
waveform[i] = rand.nextGaussian();
}
return waveform;
}
public static Point2DDataset sharpPeakData() {
double[] dataSet = new double[100];
for (int i = 0; i < 50; i++) {
dataSet[i] = i;
}
for (int i = 50; i < 100; i++) {
dataSet[i] = 100 - i;
}
Point2DDataset data = Point2DDatasets.lineData(dataSet);
return data;
}
public static Point2DDataset oneValueDataset() {
double[] dataSet = {1.5};
Point2DDataset data = Point2DDatasets.lineData(dataSet);
return data;
}
public static Point2DDataset twoValueDataset() {
double[] dataSet = {10, 20};
Point2DDataset data = Point2DDatasets.lineData(dataSet);
return data;
}
public static Point2DDataset negativeDataset() {
double[] dataSet = new double[100];
for (int i = 0; i < 100; i++) {
dataSet[i] = (i * -.5) / Math.pow(i, 2);
}
Point2DDataset data = Point2DDatasets.lineData(dataSet);
return data;
}
public static Point2DDataset consecNaNDataset() {
double[] dataSet = {Double.NaN, Double.NaN, 2, 5, 9, 15};
Point2DDataset data = Point2DDatasets.lineData(dataSet);
return data;
}
public static Point2DDataset oneNaNDataset() {
double[] dataSet = {1, Double.NaN, 10, 20};
Point2DDataset data = Point2DDatasets.lineData(dataSet);
return data;
}
public static Point2DDataset twoSpacedNaNDataset() {
double[] dataSet = {1, 8, 27, Double.NaN, 125, Double.NaN, 349};
Point2DDataset data = Point2DDatasets.lineData(dataSet);
return data;
}
}