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
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
def test_not_has_var_dim(ds_neg): assert not has_var_dim(ds_neg)
def test_has_var_dim(ds_pos): assert has_var_dim(dshape(ds_pos))