public void testWriteDB() throws SQLException { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (Exception ex) { System.err.println("Could not initiate JDBC driver."); ex.printStackTrace(); } try { Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/wittcarl_recurrence_plot_clustering?user=root&password=mysql"); TimeSeriesGenerator tsg = new TimeSeriesGenerator(1, 1000, "lorenz"); double[][] trajectory = tsg.lorenz_standard[0]; DRQA drqa = new DRQA(trajectory, trajectory, 0.05); drqa.computeRQA(2, 2, 2); drqa.writeResultDB( "IN_MEMORY", "lorenz", DRQA.EmbeddingMethod.ORIGINAL_TRAJECTORY.ordinal(), 3, -1, trajectory[0].length, DRQA.LMinMethod.L_MIN_FIX.ordinal(), 2, 0, conn); } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } }
public void testCompress() { SparseDoubleMatrix2D matrix = new SparseDoubleMatrix2D( new double[][] { new double[] {0, 0, 0, 0}, // 0 0 0 0 new double[] {0, 1, 10, 100}, // 0 0 1 2 new double[] {0, 100000, 100, 1} // 0 3 2 0 }); for (short[] row : DRQA.compress_hist(matrix)) { System.out.println(Arrays.toString(row)); } }
/** Tests the computation of line length histogram descriptors. */ public void testHistogramDescriptors() { DRQA drqa = new DRQA(trajectory, eps); drqa.computeRQA(10, 10, 10); // should not change the result. drqa.computeRQA(2, 2, 2); Map<DRQA.HistogramStatistic, Double> expected_diagonal_rqa = new HashMap<DRQA.HistogramStatistic, Double>(), expected_vertical_rqa = new HashMap<DRQA.HistogramStatistic, Double>(), expected_white_vertical_rqa = new HashMap<DRQA.HistogramStatistic, Double>(), expected_orthogonal_rqa = new HashMap<DRQA.HistogramStatistic, Double>(), expected_diagonal_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>(), expected_vertical_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>(), expected_white_vertical_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>(), expected_orthogonal_rqa_definite = new HashMap<DRQA.HistogramStatistic, Double>(); expected_diagonal_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.6365141682948128); expected_diagonal_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 0.6666666666666666); expected_diagonal_rqa.put(DRQA.HistogramStatistic.MAX, 14.0); expected_diagonal_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.2727272727272727); expected_diagonal_rqa.put(DRQA.HistogramStatistic.ENTROPY, 1.0986122886681096); expected_diagonal_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.6060606060606061); expected_diagonal_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.8333333333333334); expected_diagonal_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.07142857142857142); expected_diagonal_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 3.0 / 7.0); expected_diagonal_rqa.put(DRQA.HistogramStatistic.AVERAGE, 6.666666666666666); expected_diagonal_rqa.put(DRQA.HistogramStatistic.MEDIAN, 4.); expected_vertical_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0); expected_vertical_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 1.0); expected_vertical_rqa.put(DRQA.HistogramStatistic.MAX, 3.0); expected_vertical_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.7115384615384616); expected_vertical_rqa.put(DRQA.HistogramStatistic.ENTROPY, 0.5402041423888608); expected_vertical_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.5576923076923077); expected_vertical_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.0); expected_vertical_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.3333333333333333); expected_vertical_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0); expected_vertical_rqa.put(DRQA.HistogramStatistic.AVERAGE, 2.230769230769231); expected_vertical_rqa.put(DRQA.HistogramStatistic.MEDIAN, 2.); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 1.3296613488547582); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 0.65); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.MAX, 7.0); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.6041666666666666); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.ENTROPY, 1.6470013963439956); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 1.0); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.16666666666666666); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.14285714285714285); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 2.0 / 4.0); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.AVERAGE, 3.5999999999999996); expected_white_vertical_rqa.put(DRQA.HistogramStatistic.MEDIAN, 3.); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.SORTEDNESS, 0.5); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.MAX, 5.0); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.DEFINITENESS, 0.42105263157894735); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.ENTROPY, 0.6931471805599453); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.42105263157894735); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.SPARSENESS, 0.6666666666666666); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.2); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.AVERAGE, 4.0); expected_orthogonal_rqa.put(DRQA.HistogramStatistic.MEDIAN, 3.); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.SORTEDNESS, 1.0); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.MAX, 2.0); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.DEFINITENESS, 0.2727272727272727); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 0.0); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.6060606060606061); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.SPARSENESS, 0.0); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.5); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 2.0); expected_diagonal_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 2.); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.SORTEDNESS, 1.0); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.MAX, 3.0); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.DEFINITENESS, 0.7115384615384616); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 0.6615632381579821); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.5576923076923077); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.SPARSENESS, 0.0); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.3333333333333333); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 2.375); expected_vertical_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 2.); expected_white_vertical_rqa_definite.put( DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 1.3296613488547582); expected_white_vertical_rqa_definite.put( DRQA.HistogramStatistic.SORTEDNESS, 0.6363636363636364); expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.MAX, 7.0); expected_white_vertical_rqa_definite.put( DRQA.HistogramStatistic.DEFINITENESS, 0.6041666666666666); expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 1.5196682491027627); expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 1.0); expected_white_vertical_rqa_definite.put( DRQA.HistogramStatistic.SPARSENESS, 0.3333333333333333); expected_white_vertical_rqa_definite.put( DRQA.HistogramStatistic.INVERSE_MAX, 0.14285714285714285); expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 0.5); expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 3.954545454545454); expected_white_vertical_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 3.); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.DIFFERENCE_ENTROPY, 0.0); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.SORTEDNESS, 0.0); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.MAX, 3.0); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.DEFINITENESS, 0.42105263157894735); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.ENTROPY, 0.0); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.FILTER_RATIO, 0.42105263157894735); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.SPARSENESS, 1.0); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.INVERSE_MAX, 0.3333333333333333); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.LOCAL_MAXIMA, 1.0); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.AVERAGE, 3.0); expected_orthogonal_rqa_definite.put(DRQA.HistogramStatistic.MEDIAN, 3.); assertEquals(expected_diagonal_rqa, drqa.diagonal_rqa); assertEquals(expected_vertical_rqa, drqa.vertical_rqa); assertEquals(expected_white_vertical_rqa, drqa.white_vertical_rqa); assertEquals(expected_orthogonal_rqa, drqa.orthogonal_rqa); assertEquals(expected_diagonal_rqa_definite, drqa.diagonal_rqa_definite); assertEquals(expected_vertical_rqa_definite, drqa.vertical_rqa_definite); assertEquals(expected_white_vertical_rqa_definite, drqa.white_vertical_rqa_definite); assertEquals(expected_orthogonal_rqa_definite, drqa.orthogonal_rqa_definite); assertEquals(Math.max(2, Math.round(37.0 / 26.)), drqa.estimate_l_min(), 1e-10); }