package net.seninp.jmotif.sax.tinker;
import java.io.Console;
import net.seninp.jmotif.sax.NumerosityReductionStrategy;
import net.seninp.jmotif.sax.TSProcessor;
import net.seninp.jmotif.sax.discord.BruteForceDiscordImplementation;
import net.seninp.jmotif.sax.discord.DiscordRecord;
import net.seninp.jmotif.sax.discord.DiscordRecords;
import net.seninp.jmotif.sax.discord.HOTSAXImplementation;
import net.seninp.jmotif.sax.registry.LargeWindowAlgorithm;
public class DiscordDiscoveryPerformanceNew {
private static final String TEST_DATA_FNAME = "src/resources/test-data/300_signal1.txt";
private static final int WIN_SIZE = 300;
private static final int PAA_SIZE = 4;
private static final int ALPHABET_SIZE = 4;
private static final double NORM_THRESHOLD = 0.5;
private static final int DISCORDS_TO_TEST = 3;
private static double[] series;
public static void main(String[] args) throws Exception {
series = TSProcessor.readFileColumn(TEST_DATA_FNAME, 0, 0);
Console c = System.console();
if (c != null) {
c.format("\nPress ENTER to proceed.\n");
c.readLine();
}
DiscordRecords discordsHash = HOTSAXImplementation.series2Discords(series, DISCORDS_TO_TEST,
WIN_SIZE, PAA_SIZE, ALPHABET_SIZE, NumerosityReductionStrategy.NONE, NORM_THRESHOLD);
for (DiscordRecord d : discordsHash) {
System.out.println("hotsax hash discord " + d.toString());
}
c = System.console();
if (c != null) {
c.format("\nPress ENTER to proceed.\n");
c.readLine();
}
DiscordRecords discordsBruteForce = BruteForceDiscordImplementation.series2BruteForceDiscords(
series, WIN_SIZE, DISCORDS_TO_TEST, new LargeWindowAlgorithm(), NORM_THRESHOLD);
for (DiscordRecord d : discordsBruteForce) {
System.out.println("brute force discord " + d.toString());
}
}
}