Python numpy.bool_() Examples
The following are 30 code examples for showing how to use numpy.bool_(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.
You may check out the related API usage on the sidebar.
You may also want to check out all available functions/classes of the module
numpy
, or try the search function
.
Example 1
Project: EXOSIMS Author: dsavransky File: TargetList.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def nan_filter(self): """Populates Target List and filters out values which are nan """ # filter out nan values in numerical attributes for att in self.catalog_atts: if ('close' in att) or ('bright' in att): continue if getattr(self, att).shape[0] == 0: pass elif (type(getattr(self, att)[0]) == str) or (type(getattr(self, att)[0]) == bytes): # FIXME: intent here unclear: # note float('nan') is an IEEE NaN, getattr(.) is a str, and != on NaNs is special i = np.where(getattr(self, att) != float('nan'))[0] self.revise_lists(i) # exclude non-numerical types elif type(getattr(self, att)[0]) not in (np.unicode_, np.string_, np.bool_, bytes): if att == 'coords': i1 = np.where(~np.isnan(self.coords.ra.to('deg').value))[0] i2 = np.where(~np.isnan(self.coords.dec.to('deg').value))[0] i = np.intersect1d(i1,i2) else: i = np.where(~np.isnan(getattr(self, att)))[0] self.revise_lists(i)
Example 2
Project: pymoo Author: msu-coinlab File: duplicate.py License: Apache License 2.0 | 6 votes |
def _do(self, pop, other, is_duplicate): def to_float(val): if isinstance(val, bool) or isinstance(val, np.bool_): return 0.0 if val else 1.0 else: return val if other is None: for i in range(len(pop)): for j in range(i + 1, len(pop)): val = to_float(self.cmp(pop[i], pop[j])) if val < self.epsilon: is_duplicate[i] = True break else: for i in range(len(pop)): for j in range(len(other)): val = to_float(self.cmp(pop[i], other[j])) if val < self.epsilon: is_duplicate[i] = True break return is_duplicate
Example 3
Project: recruit Author: Frank-qlu File: test_masked_matrix.py License: Apache License 2.0 | 6 votes |
def test_allany_onmatrices(self): x = np.array([[0.13, 0.26, 0.90], [0.28, 0.33, 0.63], [0.31, 0.87, 0.70]]) X = np.matrix(x) m = np.array([[True, False, False], [False, False, False], [True, True, False]], dtype=np.bool_) mX = masked_array(X, mask=m) mXbig = (mX > 0.5) mXsmall = (mX < 0.5) assert_(not mXbig.all()) assert_(mXbig.any()) assert_equal(mXbig.all(0), np.matrix([False, False, True])) assert_equal(mXbig.all(1), np.matrix([False, False, True]).T) assert_equal(mXbig.any(0), np.matrix([False, False, True])) assert_equal(mXbig.any(1), np.matrix([True, True, True]).T) assert_(not mXsmall.all()) assert_(mXsmall.any()) assert_equal(mXsmall.all(0), np.matrix([True, True, False])) assert_equal(mXsmall.all(1), np.matrix([False, False, False]).T) assert_equal(mXsmall.any(0), np.matrix([True, True, False])) assert_equal(mXsmall.any(1), np.matrix([True, True, False]).T)
Example 4
Project: recruit Author: Frank-qlu File: histograms.py License: Apache License 2.0 | 6 votes |
def _ravel_and_check_weights(a, weights): """ Check a and weights have matching shapes, and ravel both """ a = np.asarray(a) # Ensure that the array is a "subtractable" dtype if a.dtype == np.bool_: warnings.warn("Converting input from {} to {} for compatibility." .format(a.dtype, np.uint8), RuntimeWarning, stacklevel=2) a = a.astype(np.uint8) if weights is not None: weights = np.asarray(weights) if weights.shape != a.shape: raise ValueError( 'weights should have the same shape as a.') weights = weights.ravel() a = a.ravel() return a, weights
Example 5
Project: recruit Author: Frank-qlu File: test_core.py License: Apache License 2.0 | 6 votes |
def test_allany(self): # Checks the any/all methods/functions. x = np.array([[0.13, 0.26, 0.90], [0.28, 0.33, 0.63], [0.31, 0.87, 0.70]]) m = np.array([[True, False, False], [False, False, False], [True, True, False]], dtype=np.bool_) mx = masked_array(x, mask=m) mxbig = (mx > 0.5) mxsmall = (mx < 0.5) assert_(not mxbig.all()) assert_(mxbig.any()) assert_equal(mxbig.all(0), [False, False, True]) assert_equal(mxbig.all(1), [False, False, True]) assert_equal(mxbig.any(0), [False, False, True]) assert_equal(mxbig.any(1), [True, True, True]) assert_(not mxsmall.all()) assert_(mxsmall.any()) assert_equal(mxsmall.all(0), [True, True, False]) assert_equal(mxsmall.all(1), [False, False, False]) assert_equal(mxsmall.any(0), [True, True, False]) assert_equal(mxsmall.any(1), [True, True, False])
Example 6
Project: recruit Author: Frank-qlu File: test_random.py License: Apache License 2.0 | 6 votes |
def test_respect_dtype_singleton(self): # See gh-7203 for dt in self.itype: lbnd = 0 if dt is np.bool_ else np.iinfo(dt).min ubnd = 2 if dt is np.bool_ else np.iinfo(dt).max + 1 sample = self.rfunc(lbnd, ubnd, dtype=dt) assert_equal(sample.dtype, np.dtype(dt)) for dt in (bool, int, np.long): lbnd = 0 if dt is bool else np.iinfo(dt).min ubnd = 2 if dt is bool else np.iinfo(dt).max + 1 # gh-7284: Ensure that we get Python data types sample = self.rfunc(lbnd, ubnd, dtype=dt) assert_(not hasattr(sample, 'dtype')) assert_equal(type(sample), dt)
Example 7
Project: recruit Author: Frank-qlu File: _dtype.py License: Apache License 2.0 | 6 votes |
def _name_get(dtype): # provides dtype.name.__get__ if dtype.isbuiltin == 2: # user dtypes don't promise to do anything special return dtype.type.__name__ # Builtin classes are documented as returning a "bit name" name = dtype.type.__name__ # handle bool_, str_, etc if name[-1] == '_': name = name[:-1] # append bit counts to str, unicode, and void if np.issubdtype(dtype, np.flexible) and not _isunsized(dtype): name += "{}".format(dtype.itemsize * 8) # append metadata to datetimes elif dtype.type in (np.datetime64, np.timedelta64): name += _datetime_metadata_str(dtype) return name
Example 8
Project: recruit Author: Frank-qlu File: test_regression.py License: Apache License 2.0 | 6 votes |
def test_ticket_1539(self): dtypes = [x for x in np.typeDict.values() if (issubclass(x, np.number) and not issubclass(x, np.timedelta64))] a = np.array([], np.bool_) # not x[0] because it is unordered failures = [] for x in dtypes: b = a.astype(x) for y in dtypes: c = a.astype(y) try: np.dot(b, c) except TypeError: failures.append((x, y)) if failures: raise AssertionError("Failures: %r" % failures)
Example 9
Project: recruit Author: Frank-qlu File: test_panel.py License: Apache License 2.0 | 6 votes |
def test_to_frame_mixed(self): panel = self.panel.fillna(0) panel['str'] = 'foo' panel['bool'] = panel['ItemA'] > 0 lp = panel.to_frame() wp = lp.to_panel() assert wp['bool'].values.dtype == np.bool_ # Previously, this was mutating the underlying # index and changing its name assert_frame_equal(wp['bool'], panel['bool'], check_names=False) # GH 8704 # with categorical df = panel.to_frame() df['category'] = df['str'].astype('category') # to_panel # TODO: this converts back to object p = df.to_panel() expected = panel.copy() expected['category'] = 'foo' assert_panel_equal(p, expected)
Example 10
Project: recruit Author: Frank-qlu File: test_strings.py License: Apache License 2.0 | 6 votes |
def test_contains_nan(self): # PR #14171 s = Series([np.nan, np.nan, np.nan], dtype=np.object_) result = s.str.contains('foo', na=False) expected = Series([False, False, False], dtype=np.bool_) assert_series_equal(result, expected) result = s.str.contains('foo', na=True) expected = Series([True, True, True], dtype=np.bool_) assert_series_equal(result, expected) result = s.str.contains('foo', na="foo") expected = Series(["foo", "foo", "foo"], dtype=np.object_) assert_series_equal(result, expected) result = s.str.contains('foo') expected = Series([np.nan, np.nan, np.nan], dtype=np.object_) assert_series_equal(result, expected)
Example 11
Project: recruit Author: Frank-qlu File: test_dtypes.py License: Apache License 2.0 | 6 votes |
def test_select_dtypes_exclude_include_using_list_like(self): df = DataFrame({'a': list('abc'), 'b': list(range(1, 4)), 'c': np.arange(3, 6).astype('u1'), 'd': np.arange(4.0, 7.0, dtype='float64'), 'e': [True, False, True], 'f': pd.date_range('now', periods=3).values}) exclude = np.datetime64, include = np.bool_, 'integer' r = df.select_dtypes(include=include, exclude=exclude) e = df[['b', 'c', 'e']] assert_frame_equal(r, e) exclude = 'datetime', include = 'bool', 'int64', 'int32' r = df.select_dtypes(include=include, exclude=exclude) e = df[['b', 'e']] assert_frame_equal(r, e)
Example 12
Project: recruit Author: Frank-qlu File: test_arithmetic.py License: Apache License 2.0 | 6 votes |
def test_flex_comparison_nat(self): # GH 15697, GH 22163 df.eq(pd.NaT) should behave like df == pd.NaT, # and _definitely_ not be NaN df = pd.DataFrame([pd.NaT]) result = df == pd.NaT # result.iloc[0, 0] is a np.bool_ object assert result.iloc[0, 0].item() is False result = df.eq(pd.NaT) assert result.iloc[0, 0].item() is False result = df != pd.NaT assert result.iloc[0, 0].item() is True result = df.ne(pd.NaT) assert result.iloc[0, 0].item() is True
Example 13
Project: recruit Author: Frank-qlu File: test_inference.py License: Apache License 2.0 | 6 votes |
def test_bools(self): arr = np.array([True, False, True, True, True], dtype='O') result = lib.infer_dtype(arr, skipna=True) assert result == 'boolean' arr = np.array([np.bool_(True), np.bool_(False)], dtype='O') result = lib.infer_dtype(arr, skipna=True) assert result == 'boolean' arr = np.array([True, False, True, 'foo'], dtype='O') result = lib.infer_dtype(arr, skipna=True) assert result == 'mixed' arr = np.array([True, False, True], dtype=bool) result = lib.infer_dtype(arr, skipna=True) assert result == 'boolean' arr = np.array([True, np.nan, False], dtype='O') result = lib.infer_dtype(arr, skipna=True) assert result == 'boolean' result = lib.infer_dtype(arr, skipna=False) assert result == 'mixed'
Example 14
Project: recruit Author: Frank-qlu File: test_inference.py License: Apache License 2.0 | 6 votes |
def test_is_number(self): assert is_number(True) assert is_number(1) assert is_number(1.1) assert is_number(1 + 3j) assert is_number(np.bool(False)) assert is_number(np.int64(1)) assert is_number(np.float64(1.1)) assert is_number(np.complex128(1 + 3j)) assert is_number(np.nan) assert not is_number(None) assert not is_number('x') assert not is_number(datetime(2011, 1, 1)) assert not is_number(np.datetime64('2011-01-01')) assert not is_number(Timestamp('2011-01-01')) assert not is_number(Timestamp('2011-01-01', tz='US/Eastern')) assert not is_number(timedelta(1000)) assert not is_number(Timedelta('1 days')) # questionable assert not is_number(np.bool_(False)) assert is_number(np.timedelta64(1, 'D'))
Example 15
Project: recruit Author: Frank-qlu File: test_inference.py License: Apache License 2.0 | 6 votes |
def test_is_bool(self): assert is_bool(True) assert is_bool(np.bool(False)) assert is_bool(np.bool_(False)) assert not is_bool(1) assert not is_bool(1.1) assert not is_bool(1 + 3j) assert not is_bool(np.int64(1)) assert not is_bool(np.float64(1.1)) assert not is_bool(np.complex128(1 + 3j)) assert not is_bool(np.nan) assert not is_bool(None) assert not is_bool('x') assert not is_bool(datetime(2011, 1, 1)) assert not is_bool(np.datetime64('2011-01-01')) assert not is_bool(Timestamp('2011-01-01')) assert not is_bool(Timestamp('2011-01-01', tz='US/Eastern')) assert not is_bool(timedelta(1000)) assert not is_bool(np.timedelta64(1, 'D')) assert not is_bool(Timedelta('1 days'))
Example 16
Project: recruit Author: Frank-qlu File: test_inference.py License: Apache License 2.0 | 6 votes |
def test_is_integer(self): assert is_integer(1) assert is_integer(np.int64(1)) assert not is_integer(True) assert not is_integer(1.1) assert not is_integer(1 + 3j) assert not is_integer(np.bool(False)) assert not is_integer(np.bool_(False)) assert not is_integer(np.float64(1.1)) assert not is_integer(np.complex128(1 + 3j)) assert not is_integer(np.nan) assert not is_integer(None) assert not is_integer('x') assert not is_integer(datetime(2011, 1, 1)) assert not is_integer(np.datetime64('2011-01-01')) assert not is_integer(Timestamp('2011-01-01')) assert not is_integer(Timestamp('2011-01-01', tz='US/Eastern')) assert not is_integer(timedelta(1000)) assert not is_integer(Timedelta('1 days')) # questionable assert is_integer(np.timedelta64(1, 'D'))
Example 17
Project: recruit Author: Frank-qlu File: test_inference.py License: Apache License 2.0 | 6 votes |
def test_is_float(self): assert is_float(1.1) assert is_float(np.float64(1.1)) assert is_float(np.nan) assert not is_float(True) assert not is_float(1) assert not is_float(1 + 3j) assert not is_float(np.bool(False)) assert not is_float(np.bool_(False)) assert not is_float(np.int64(1)) assert not is_float(np.complex128(1 + 3j)) assert not is_float(None) assert not is_float('x') assert not is_float(datetime(2011, 1, 1)) assert not is_float(np.datetime64('2011-01-01')) assert not is_float(Timestamp('2011-01-01')) assert not is_float(Timestamp('2011-01-01', tz='US/Eastern')) assert not is_float(timedelta(1000)) assert not is_float(np.timedelta64(1, 'D')) assert not is_float(Timedelta('1 days'))
Example 18
Project: recruit Author: Frank-qlu File: sparse.py License: Apache License 2.0 | 6 votes |
def _wrap_result(name, data, sparse_index, fill_value, dtype=None): """ wrap op result to have correct dtype """ if name.startswith('__'): # e.g. __eq__ --> eq name = name[2:-2] if name in ('eq', 'ne', 'lt', 'gt', 'le', 'ge'): dtype = np.bool fill_value = lib.item_from_zerodim(fill_value) if is_bool_dtype(dtype): # fill_value may be np.bool_ fill_value = bool(fill_value) return SparseArray(data, sparse_index=sparse_index, fill_value=fill_value, dtype=dtype)
Example 19
Project: PolarSeg Author: edwardzhou130 File: ptBEV.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def nb_greedy_FPS(xyz,K): start_element = 0 sample_num = xyz.shape[0] sum_vec = np.zeros((sample_num,1),dtype = np.float32) xyz_sq = xyz**2 for j in range(sample_num): sum_vec[j,0] = np.sum(xyz_sq[j,:]) pairwise_distance = sum_vec + np.transpose(sum_vec) - 2*np.dot(xyz, np.transpose(xyz)) candidates_ind = np.zeros((sample_num,),dtype = np.bool_) candidates_ind[start_element] = True remain_ind = np.ones((sample_num,),dtype = np.bool_) remain_ind[start_element] = False all_ind = np.arange(sample_num) for i in range(1,K): if i == 1: min_remain_pt_dis = pairwise_distance[:,start_element] min_remain_pt_dis = min_remain_pt_dis[remain_ind] else: cur_dis = pairwise_distance[remain_ind,:] cur_dis = cur_dis[:,candidates_ind] min_remain_pt_dis = np.zeros((cur_dis.shape[0],),dtype = np.float32) for j in range(cur_dis.shape[0]): min_remain_pt_dis[j] = np.min(cur_dis[j,:]) next_ind_in_remain = np.argmax(min_remain_pt_dis) next_ind = all_ind[remain_ind][next_ind_in_remain] candidates_ind[next_ind] = True remain_ind[next_ind] = False return candidates_ind
Example 20
Project: QCElemental Author: MolSSI File: types.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def __modify_schema__(cls, field_schema: Dict[str, Any]) -> None: dt = cls._dtype if dt is int or np.issubdtype(dt, np.integer): items = {"type": "number", "multipleOf": 1.0} elif dt is float or np.issubdtype(dt, np.floating): items = {"type": "number"} elif dt is str or np.issubdtype(dt, np.string_): items = {"type": "string"} elif dt is bool or np.issubdtype(dt, np.bool_): items = {"type": "boolean"} field_schema.update(type="array", items=items)
Example 21
Project: pyshgp Author: erp12 File: evaluation.py License: MIT License | 5 votes |
def default_error_function(self, actuals, expecteds) -> np.array: """Produce errors of actual program output given expected program output. The default error function is intended to be a universal error function for Push programs which only output a subset of the standard data types. Parameters ---------- actuals : list The values produced by running a Push program on a sequences of cases. expecteds: list The ground truth values for the sequence of cases used to produce the actuals. Returns ------- np.array An array of error values describing the program's performance. """ errors = [] for ndx, actual in enumerate(actuals): expected = expecteds[ndx] if actual is Token.no_stack_item: errors.append(self.penalty) elif isinstance(expected, (bool, np.bool_)): errors.append(int(not (bool(actual) == expected))) elif isinstance(expected, (int, np.int64, float, np.float64)): try: errors.append(abs(float(actual) - expected)) except OverflowError: errors.append(self.penalty) elif isinstance(expected, str): errors.append(damerau_levenshtein_distance(str(actual), expected)) elif isinstance(expected, list): errors += list(self.default_error_function(list(actual), expected)) else: raise ValueError("Unknown expected type for {e}".format(e=expected)) return np.array(errors)
Example 22
Project: recruit Author: Frank-qlu File: arraysetops.py License: Apache License 2.0 | 5 votes |
def _unique1d(ar, return_index=False, return_inverse=False, return_counts=False): """ Find the unique elements of an array, ignoring shape. """ ar = np.asanyarray(ar).flatten() optional_indices = return_index or return_inverse if optional_indices: perm = ar.argsort(kind='mergesort' if return_index else 'quicksort') aux = ar[perm] else: ar.sort() aux = ar mask = np.empty(aux.shape, dtype=np.bool_) mask[:1] = True mask[1:] = aux[1:] != aux[:-1] ret = (aux[mask],) if return_index: ret += (perm[mask],) if return_inverse: imask = np.cumsum(mask) - 1 inv_idx = np.empty(mask.shape, dtype=np.intp) inv_idx[perm] = imask ret += (inv_idx,) if return_counts: idx = np.concatenate(np.nonzero(mask) + ([mask.size],)) ret += (np.diff(idx),) return ret
Example 23
Project: recruit Author: Frank-qlu File: test_nanfunctions.py License: Apache License 2.0 | 5 votes |
def test_dtype_error(self): for f in self.nanfuncs: for dtype in [np.bool_, np.int_, np.object_]: assert_raises(TypeError, f, _ndat, axis=1, dtype=dtype)
Example 24
Project: recruit Author: Frank-qlu File: test_nanfunctions.py License: Apache License 2.0 | 5 votes |
def test_out_dtype_error(self): for f in self.nanfuncs: for dtype in [np.bool_, np.int_, np.object_]: out = np.empty(_ndat.shape[0], dtype=dtype) assert_raises(TypeError, f, _ndat, axis=1, out=out)
Example 25
Project: recruit Author: Frank-qlu File: test_core.py License: Apache License 2.0 | 5 votes |
def test_varmean_nomask(self): # gh-5769 foo = array([1,2,3,4], dtype='f8') bar = array([1,2,3,4], dtype='f8') assert_equal(type(foo.mean()), np.float64) assert_equal(type(foo.var()), np.float64) assert((foo.mean() == bar.mean()) is np.bool_(True)) # check array type is preserved and out works foo = array(np.arange(16).reshape((4,4)), dtype='f8') bar = empty(4, dtype='f4') assert_equal(type(foo.mean(axis=1)), MaskedArray) assert_equal(type(foo.var(axis=1)), MaskedArray) assert_(foo.mean(axis=1, out=bar) is bar) assert_(foo.var(axis=1, out=bar) is bar)
Example 26
Project: recruit Author: Frank-qlu File: test_random.py License: Apache License 2.0 | 5 votes |
def test_bounds_checking(self): for dt in self.itype: lbnd = 0 if dt is np.bool_ else np.iinfo(dt).min ubnd = 2 if dt is np.bool_ else np.iinfo(dt).max + 1 assert_raises(ValueError, self.rfunc, lbnd - 1, ubnd, dtype=dt) assert_raises(ValueError, self.rfunc, lbnd, ubnd + 1, dtype=dt) assert_raises(ValueError, self.rfunc, ubnd, lbnd, dtype=dt) assert_raises(ValueError, self.rfunc, 1, 0, dtype=dt)
Example 27
Project: recruit Author: Frank-qlu File: test_random.py License: Apache License 2.0 | 5 votes |
def test_rng_zero_and_extremes(self): for dt in self.itype: lbnd = 0 if dt is np.bool_ else np.iinfo(dt).min ubnd = 2 if dt is np.bool_ else np.iinfo(dt).max + 1 tgt = ubnd - 1 assert_equal(self.rfunc(tgt, tgt + 1, size=1000, dtype=dt), tgt) tgt = lbnd assert_equal(self.rfunc(tgt, tgt + 1, size=1000, dtype=dt), tgt) tgt = (lbnd + ubnd)//2 assert_equal(self.rfunc(tgt, tgt + 1, size=1000, dtype=dt), tgt)
Example 28
Project: recruit Author: Frank-qlu File: test_random.py License: Apache License 2.0 | 5 votes |
def test_full_range(self): # Test for ticket #1690 for dt in self.itype: lbnd = 0 if dt is np.bool_ else np.iinfo(dt).min ubnd = 2 if dt is np.bool_ else np.iinfo(dt).max + 1 try: self.rfunc(lbnd, ubnd, dtype=dt) except Exception as e: raise AssertionError("No error should have been raised, " "but one was with the following " "message:\n\n%s" % str(e))
Example 29
Project: recruit Author: Frank-qlu File: test_print.py License: Apache License 2.0 | 5 votes |
def test_scalar_format(): """Test the str.format method with NumPy scalar types""" tests = [('{0}', True, np.bool_), ('{0}', False, np.bool_), ('{0:d}', 130, np.uint8), ('{0:d}', 50000, np.uint16), ('{0:d}', 3000000000, np.uint32), ('{0:d}', 15000000000000000000, np.uint64), ('{0:d}', -120, np.int8), ('{0:d}', -30000, np.int16), ('{0:d}', -2000000000, np.int32), ('{0:d}', -7000000000000000000, np.int64), ('{0:g}', 1.5, np.float16), ('{0:g}', 1.5, np.float32), ('{0:g}', 1.5, np.float64), ('{0:g}', 1.5, np.longdouble), ('{0:g}', 1.5+0.5j, np.complex64), ('{0:g}', 1.5+0.5j, np.complex128), ('{0:g}', 1.5+0.5j, np.clongdouble)] for (fmat, val, valtype) in tests: try: assert_equal(fmat.format(val), fmat.format(valtype(val)), "failed with val %s, type %s" % (val, valtype)) except ValueError as e: assert_(False, "format raised exception (fmt='%s', val=%s, type=%s, exc='%s')" % (fmat, repr(val), repr(valtype), str(e))) # # Locale tests: scalar types formatting should be independent of the locale #
Example 30
Project: recruit Author: Frank-qlu File: test_indexing.py License: Apache License 2.0 | 5 votes |
def test_bool_as_int_argument_errors(self): a = np.array([[[1]]]) assert_raises(TypeError, np.reshape, a, (True, -1)) assert_raises(TypeError, np.reshape, a, (np.bool_(True), -1)) # Note that operator.index(np.array(True)) does not work, a boolean # array is thus also deprecated, but not with the same message: assert_raises(TypeError, operator.index, np.array(True)) assert_warns(DeprecationWarning, operator.index, np.True_) assert_raises(TypeError, np.take, args=(a, [0], False))