def test_partition_before(): assert functional.partition_before(functional.equals(1), []) == () assert (tuple( functional.partition_before( functional.equals(1), [3, 1, 1, 2, 2, 1, 1, 2, 1, 1, 1], ), ) == ((3, ), (1, ), (1, 2, 2), (1, ), (1, 2), (1, ), (1, ), (1, )))
def test_partition_after(): assert functional.partition_after(functional.equals(1), []) == () assert (tuple( functional.partition_after( functional.equals(1), [1, 1, 2, 2, 1, 1, 2, 1, 1, 1], ), ) == ((1, ), (1, ), (2, 2, 1), (1, ), (2, 1), (1, ), (1, )))
async def test_drop_last_while(): assert tuple(functional.drop_last_while(functional.equals(1), [])) == () assert tuple(functional.drop_last_while(functional.equals(1), [1])) == () assert tuple(functional.drop_last_while(functional.equals(1), [2])) == (2, ) assert (tuple( functional.drop_last_while( functional.equals(1), [1, 1, 2, 2, 1, 1, 2, 1, 1, 1], ), ) == (1, 1, 2, 2, 1, 1, 2))
def test_latency(): start_time = time.time() for _ in range(1000): functional_generic.pipe( True, functional_generic.juxt(functional.equals(True), functional.equals(False)), functional.head, functional.just("bla"), functional.attrgetter("lower"), ) assert time.time() - start_time < 0.1
def test_find_index(): seq = ({"key": 1}, {"key": 2}, {"key": 3}, {"key": 2}) assert (functional_generic.find_index( functional_generic.compose_left( dict_utils.itemgetter("key"), functional.equals(2), ), )(iter(seq)) == 1) assert (functional_generic.find_index( functional_generic.compose_left( dict_utils.itemgetter("key"), functional.equals(4), ), )(iter(seq)) == -1)
def test_assert_that(): functional.assert_that(functional.equals(2))(2)
async def test_unless2(): assert functional_generic.unless(functional.equals(1), functional.just(True))(2)
#: that returns True when used with the the given function. If no element # in the iterable returns True, -1 is returned. #: #: >>> f = find(gamla.greater_than(10)) #: >>> f([1, 2, 3, 11, 12, 13]) #: 11 #: >>> f([1, 2, 3]) #: -1 #: #: See Also: #: - find find_index = compose_left( before(functional.second), find, before(enumerate), after(ternary(functional.equals(None), functional.just(-1), functional.head)), ) def countby_many(f): """Count elements of a collection by a function which returns a tuple of keys for single element. Parameters: f (Callable): Key function (given object in collection outputs tuple of keys). it (Iterable): Collection. Returns: Dict[Text, Any]: Dictionary where key has been computed by the `f` key function and value is the frequency of this key.
def test_get_leaves_by_ancestor_predicate(): fn = tree.get_leaves_by_ancestor_predicate(functional.equals("x")) assert fn({"x": {"t": ("1")}}) == ("1", )