def test_distance2():
    with util_numpy.test_uses_numpy() as np:
        s = np.array([[0., 0, 1, 2, 1, 0, 1.3, 0, 0],
                      [0., 0, 1, 2, 1, 0, 1, 0,
                       0], [0., 1, 2, 0, 0, 0, 0, 0, 0],
                      [0., 1, 2, 0, 0, 0, 0, 0,
                       0], [1., 2, 0, 0, 0, 0, 0, 1, 1],
                      [1., 2, 0, 0, 0, 0, 0, 1, 1],
                      [1., 2, 0, 0, 1, 0, 0, 1, 1]])
        l = np.array([1, 1, 1, 1, 0, 0, 0])

        if directory:
            if not dtwvis.test_without_visualization():
                plot_series(s, l)
            savefig = str(directory / "dts.dot")
        else:
            savefig = None

        prototypeidx = 0
        ml_values, cl_values, clfs, importances = \
            dtww.series_to_dt(s, l, prototypeidx, max_clfs=50, savefig=savefig)
        logger.debug(f"ml_values = {dict(ml_values)}")
        logger.debug(f"cl_values = {dict(cl_values)}")
        weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                       ml_values,
                                                       cl_values,
                                                       only_max=False,
                                                       strict_cl=True)

        if not dtwvis.test_without_visualization():
            if directory:
                plot_margins(s[prototypeidx], weights, clfs)
def test_distance5():
    with util_numpy.test_uses_numpy() as np:
        s = np.array([
            [0., 0, 0, 2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # 0
            [0., 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 0],  # 1
            [0., 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0]  # 2
        ])
        l = np.array([1, 1, 0])

        if directory:
            if not dtwvis.test_without_visualization():
                plot_series(s, l)

        prototypeidx = 0
        ml_values, cl_values, clf, importances = dtww.series_to_dt(
            s, l, prototypeidx, window=4)
        logger.debug(f"ml_values = {dict(ml_values)}")
        logger.debug(f"cl_values = {dict(cl_values)}")
        weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                       ml_values,
                                                       cl_values,
                                                       only_max=False,
                                                       strict_cl=True)
        if directory:
            if not dtwvis.test_without_visualization():
                plot_margins(s[prototypeidx], weights, clf)
def test_distance6():
    with util_numpy.test_uses_numpy() as np:
        s = np.loadtxt(Path(__file__).parent / "rsrc" / "series_0.csv",
                       delimiter=',')
        l = np.loadtxt(Path(__file__).parent / "rsrc" / "labels_0.csv",
                       delimiter=',')

        if directory:
            if not dtwvis.test_without_visualization():
                plot_series(s, l)
            savefig = str(directory / "dts.dot")
        else:
            savefig = None

        prototypeidx = 3
        labels = np.zeros(l.shape)
        labels[l == l[prototypeidx]] = 1
        ml_values, cl_values, clf, importances = \
            dtww.series_to_dt(s, labels, prototypeidx, window=0, min_ig=0.1, savefig=savefig)
        logger.debug(f"ml_values = {dict(ml_values)}")
        logger.debug(f"cl_values = {dict(cl_values)}")
        weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                       ml_values,
                                                       cl_values,
                                                       only_max=False,
                                                       strict_cl=True)
        if directory:
            if not dtwvis.test_without_visualization():
                plot_margins(s[prototypeidx], weights, clf, prototypeidx)
def test_distance7():
    s = np.array([[0.0, 0.3, 0.5, 0.8, 1.0, 0.1, 0.0, 0.1],
                  [0.0, 0.2, 0.3, 0.7, 1.1, 0.0, 0.1, 0.0],
                  [0.1, 0.0, 1.0, 1.0, 1.0, 0.9, 0.0, 0.0],
                  [0.0, 0.0, 1.1, 0.9, 1.0, 1.0, 0.0, 0.0],
                  [0.0, 0.1, 1.1, 1.0, 0.9, 0.9, 0.0, 0.0],
                  [0.0, 0.1, 1.0, 1.1, 0.9, 1.0, 0.0, 0.1],
                  [0.0, 0.1, 0.4, 0.3, 0.2, 0.3, 0.0, 0.0],
                  [0.1, 0.0, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1]])
    l = np.array([1, 1, 0, 0, 0, 0, 0, 0])
    prototypeidx = 0

    if directory:
        plot_series(s, l, prototypeidx)
        savefig = str(directory / "dts.dot")
    else:
        savefig = None
    ml_values, cl_values, clf, imp = dtww.series_to_dt(
        s,
        l,
        prototypeidx,
        window=0,
        min_ig=0.01,
        savefig=savefig,
        warping_paths_fnc=dtww.warping_paths)
    # logger.debug(f"ml_values = {dict(ml_values)}")
    # logger.debug(f"cl_values = {dict(cl_values)}")
    weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                   ml_values,
                                                   cl_values,
                                                   only_max=False,
                                                   strict_cl=True)
    if directory:
        plot_margins(s[prototypeidx], weights, clf, imp)
def test_distance4():
    s = np.array([
        [0., 0, 1, 2, 1, 0, 1.3, 0, 0],  # 0
        [0., 1, 2, 0, 0, 0, 0, 0, 0],  # 1
        [1., 2, 0, 0, 0, 0, 0, 1, 1],  # 2
        [0., 0, 1, 2, 1, 0, 1, 0, 0],  # 3
        [0., 1, 2, 0, 0, 0, 0, 0, 0],  # 4
        [1., 2, 0, 0, 0, 0, 0, 1, 1],  # 5
        [1., 2, 0, 0, 1, 0, 0, 1, 1],  # 6
        [1., 2, 0.05, 0.01, 0.9, 0, 0, 1, 1]
    ])  # 7
    l = np.array([1, 0, 0, 1, 0, 0, 0, 0])

    if directory:
        plot_series(s, l)
        savefig = str(directory / "dts.dot")
    else:
        savefig = None

    prototypeidx = 0
    ml_values, cl_values, clf, importances = \
        dtww.series_to_dt(s, l, prototypeidx, window=2, min_ig=0.1, savefig=savefig)
    logger.debug(f"ml_values = {dict(ml_values)}")
    logger.debug(f"cl_values = {dict(cl_values)}")
    weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                   ml_values,
                                                   cl_values,
                                                   only_max=False,
                                                   strict_cl=True)
    if directory:
        plot_margins(s[prototypeidx], weights, clf)
def test_distance2(directory=None):
    directory = prepare_directory(directory)
    s = np.array([[0., 0, 1, 2, 1, 0, 1.3, 0, 0], [0., 0, 1, 2, 1, 0, 1, 0, 0],
                  [0., 1, 2, 0, 0, 0, 0, 0, 0], [0., 1, 2, 0, 0, 0, 0, 0, 0],
                  [1., 2, 0, 0, 0, 0, 0, 1, 1], [1., 2, 0, 0, 0, 0, 0, 1, 1],
                  [1., 2, 0, 0, 1, 0, 0, 1, 1]])
    l = np.array([1, 1, 1, 1, 0, 0, 0])

    if directory:
        plot_series(s, l)

    prototypeidx = 0
    ml_values, cl_values, clfs = dtww.series_to_dt(s,
                                                   l,
                                                   prototypeidx,
                                                   max_clfs=50,
                                                   savefig=str(directory /
                                                               "dts.dot"))
    logger.debug(f"ml_values = {dict(ml_values)}")
    logger.debug(f"cl_values = {dict(cl_values)}")
    weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                   ml_values,
                                                   cl_values,
                                                   only_max=False,
                                                   strict_cl=True)

    if directory:
        plot_margins(s[prototypeidx], weights, clfs)
def test_distance6(directory=None):
    directory = prepare_directory(directory)
    s = np.loadtxt(Path(__file__).parent / "rsrc" / "series_0.csv",
                   delimiter=',')
    l = np.loadtxt(Path(__file__).parent / "rsrc" / "labels_0.csv",
                   delimiter=',')

    if directory:
        plot_series(s, l)

    prototypeidx = 3
    labels = np.zeros(l.shape)
    labels[l == l[prototypeidx]] = 1
    ml_values, cl_values, clf = dtww.series_to_dt(s,
                                                  labels,
                                                  prototypeidx,
                                                  window=0,
                                                  min_ig=0.1,
                                                  savefig=str(directory /
                                                              "dts.dot"))
    logger.debug(f"ml_values = {dict(ml_values)}")
    logger.debug(f"cl_values = {dict(cl_values)}")
    weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                   ml_values,
                                                   cl_values,
                                                   only_max=False,
                                                   strict_cl=True)
    if directory:
        plot_margins(s[prototypeidx], weights, clf, prototypeidx)
def test_distance5(directory=None):
    directory = prepare_directory(directory)
    s = np.array([
        [0., 0, 0, 2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # 0
        [0., 0, 2, 0, -2, 0, 2, 0, -2, 0, 2, 0, -2, 0, 0],  # 1
        [0., 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0]  # 2
    ])
    l = np.array([1, 1, 0])

    if directory:
        plot_series(s, l)

    prototypeidx = 0
    ml_values, cl_values, clf = dtww.series_to_dt(s, l, prototypeidx, window=4)
    logger.debug(f"ml_values = {dict(ml_values)}")
    logger.debug(f"cl_values = {dict(cl_values)}")
    weights = dtww.compute_weights_from_mlclvalues(s[prototypeidx],
                                                   ml_values,
                                                   cl_values,
                                                   only_max=False,
                                                   strict_cl=True)
    if directory:
        plot_margins(s[prototypeidx], weights, clf)