Get the features used to decide if two strokes belong to the same symbol
    or not.

    Parameters
    ----------
    recording : list
        A list of strokes
    strokeid1 : int
    strokeid2 : int

    Returns
    -------
    list :
        A list of features which could be useful to decide if stroke1 and
        stroke2 belong to the same symbol.

def get_stroke_features(recording, strokeid1, strokeid2):
    """Get the features used to decide if two strokes belong to the same symbol
    or not.

    Parameters
    ----------
    recording : list
        A list of strokes
    strokeid1 : int
    strokeid2 : int

    Returns
    -------
    list :
        A list of features which could be useful to decide if stroke1 and
        stroke2 belong to the same symbol.
    """
    stroke1 = recording[strokeid1]
    stroke2 = recording[strokeid2]
    assert isinstance(stroke1, list), "stroke1 is a %s" % type(stroke1)
    X_i = []
    for s in [stroke1, stroke2]:
        hw = HandwrittenData(json.dumps([s]))
        feat1 = features.ConstantPointCoordinates(strokes=1,
                                                  points_per_stroke=20,
                                                  fill_empty_with=0)
        feat2 = features.ReCurvature(strokes=1)
        feat3 = features.Ink()
        X_i += hw.feature_extraction([feat1, feat2, feat3])
    X_i += [get_strokes_distance(stroke1, stroke2)]  # Distance of strokes
    X_i += [get_time_distance(stroke1, stroke2)]  # Time in between
    X_i += [abs(strokeid2-strokeid1)]  # Strokes in between
    # X_i += [get_black_percentage()]
    return X_i