Example #1
0
    def test_has_var_dim(self):
        msg = ""
        fail = False
        ds_pos = [dshape("... * float32"),
                  dshape("A... * float32"),
                  dshape("var * float32"),
                  dshape("10 * { f0: int32, f1: A... * float32 }"),
                  dshape("{ f0 : { g0 : var * int }, f1: int32 }"),
                  (dshape("var*int32"),),
                  ]
        ds_false_negatives = list(filter(lambda ds: not has_var_dim(ds), ds_pos))
        if len(ds_false_negatives) != 0:
            fail = True
            msg += "The following dshapes should have a var dim\n  %s\n" \
                   % "\n  ".join(map(str, ds_false_negatives))
        ds_neg = [dshape("float32"),
                  dshape("10 * float32"),
                  dshape("10 * { f0: int32, f1: 10 * float32 }"),
                  dshape("{ f0 : { g0 : 2 * int }, f1: int32 }"),
                  (dshape("int32"),),
                  ]
        ds_false_positives = list(filter(has_var_dim, ds_neg))
        if len(ds_false_positives) != 0:
            fail = True
            msg += "The following dshapes should not have a var dim\n  %s \n" \
                   % "\n  ".join(map(str, ds_false_positives))

        self.assertFalse(fail, msg)
def _array2string(a,
                  shape,
                  dtype,
                  max_line_width,
                  precision,
                  suppress_small,
                  separator=' ',
                  prefix="",
                  formatter=None):

    if has_var_dim(shape):
        dim_size = -1
    else:
        dim_size = reduce(product, shape, 1)

    if max_line_width is None:
        max_line_width = _line_width

    if precision is None:
        precision = _float_output_precision

    if suppress_small is None:
        suppress_small = _float_output_suppress_small

    if formatter is None:
        formatter = _formatter

    if dim_size > _summaryThreshold:
        summary_insert = "..., "
        data = ravel(np.array(_leading_trailing(a)))
    else:
        summary_insert = ""
        data = ravel(np.array(ddesc_as_py(a)))

    formatdict = {
        'bool': _boolFormatter,
        'int': IntegerFormat(data),
        'float': FloatFormat(data, precision, suppress_small),
        'complexfloat': ComplexFormat(data, precision, suppress_small),
        'numpystr': repr_format,
        'str': str
    }

    if formatter is not None:
        _apply_formatter(formatdict, formatter)

    assert (not hasattr(a, '_format'))

    # find the right formatting function for the array
    format_function = _choose_format(formatdict, dtype)

    # skip over "["
    next_line_prefix = " "
    # skip over array(
    next_line_prefix += " " * len(prefix)

    lst = _formatArray(a, format_function, len(shape), max_line_width,
                       next_line_prefix, separator, _summaryEdgeItems,
                       summary_insert).rstrip()
    return lst
Example #3
0
    def test_has_var_dim(self):
        msg = ""
        fail = False
        ds_pos = [
            dshape("... * float32"),
            dshape("A... * float32"),
            dshape("var * float32"),
            dshape("10 * { f0: int32, f1: A... * float32 }"),
            dshape("{ f0 : { g0 : var * int }, f1: int32 }"),
            (dshape("var*int32"), ),
        ]
        ds_false_negatives = list(
            filter(lambda ds: not has_var_dim(ds), ds_pos))
        if len(ds_false_negatives) != 0:
            fail = True
            msg += "The following dshapes should have a var dim\n  %s\n" \
                   % "\n  ".join(map(str, ds_false_negatives))
        ds_neg = [
            dshape("float32"),
            dshape("10 * float32"),
            dshape("10 * { f0: int32, f1: 10 * float32 }"),
            dshape("{ f0 : { g0 : 2 * int }, f1: int32 }"),
            (dshape("int32"), ),
        ]
        ds_false_positives = list(filter(has_var_dim, ds_neg))
        if len(ds_false_positives) != 0:
            fail = True
            msg += "The following dshapes should not have a var dim\n  %s \n" \
                   % "\n  ".join(map(str, ds_false_positives))

        self.assertFalse(fail, msg)
Example #4
0
def _array2string(a, shape, dtype, max_line_width, precision,
                  suppress_small, separator=' ', prefix="", formatter=None):

    if has_var_dim(shape):
        dim_size = -1
    else:
        dim_size = reduce(product, shape, 1)

    if max_line_width is None:
        max_line_width = _line_width

    if precision is None:
        precision = _float_output_precision

    if suppress_small is None:
        suppress_small = _float_output_suppress_small

    if formatter is None:
        formatter = _formatter

    if dim_size > _summaryThreshold:
        summary_insert = "..., "
        data = ravel(np.array(_leading_trailing(a)))
    else:
        summary_insert = ""
        data = ravel(np.array(ddesc_as_py(a)))

    formatdict = {'bool': _boolFormatter,
                  'int': IntegerFormat(data),
                  'float': FloatFormat(data, precision, suppress_small),
                  'complexfloat': ComplexFormat(data, precision,
                                                suppress_small),
                  'numpystr': repr_format,
                  'str': str}

    if formatter is not None:
        _apply_formatter(formatdict, formatter)

    assert(not hasattr(a, '_format'))

    # find the right formatting function for the array
    format_function = _choose_format(formatdict, dtype)

    # skip over "["
    next_line_prefix = " "
    # skip over array(
    next_line_prefix += " "*len(prefix)

    lst = _formatArray(a, format_function, len(shape), max_line_width,
                       next_line_prefix, separator,
                       _summaryEdgeItems, summary_insert).rstrip()
    return lst
Example #5
0
def test_not_has_var_dim(ds_neg):
    assert not has_var_dim(ds_neg)
Example #6
0
def test_has_var_dim(ds_pos):
    assert has_var_dim(dshape(ds_pos))
Example #7
0
def test_not_has_var_dim(ds_neg):
    assert not has_var_dim(ds_neg)
Example #8
0
def test_has_var_dim(ds_pos):
    assert has_var_dim(dshape(ds_pos))