Sha256: db81c6260f80f034192e8883f6959bde71231b64852950879ab70bf69ec0e47f

Contents?: true

Size: 1.51 KB

Versions: 84

Compression:

Stored size: 1.51 KB

Contents

-module(strain_tests).

-include_lib("eunit/include/eunit.hrl").

empty_keep_test() ->
  ?assertEqual([], strain:keep(fun(X) -> X < 10 end, [])).

keep_everything_test() ->
  ?assertEqual([1, 2, 3], strain:keep(fun(X) -> X < 10 end, [1,2,3])).

keep_first_last_test() ->
  ?assertEqual([1, 3], strain:keep(fun(X) -> odd(X) end, [1,2,3])).

keep_nothin_test() ->
  ?assertEqual([], strain:keep(fun(X) -> even(X) end, [1,3,5,7])).

keep_neither_first_nor_last_test() ->
  ?assertEqual([2], strain:keep(fun(X) -> even(X) end, [1,2,3])).

keep_strings_test() ->
  Str = ["apple", "zebra", "banana", "zombies", "cherimoya", "zealot"],
  ?assertEqual(
     ["zebra", "zombies", "zealot"],
     strain:keep(fun(S) -> string:sub_string(S, 1,1) =:= "z" end, Str)).

empty_discard_test() ->
  ?assertEqual([], strain:discard(fun(X) -> X < 10 end, [])).

discard_everything_test() ->
  ?assertEqual([], strain:discard(fun(X) -> X < 10 end, [1,2,3])).

discard_first_and_last_test() ->
  ?assertEqual([2], strain:discard(fun(X) -> odd(X) end, [1,2,3])).

discard_nothing_test() ->
  ?assertEqual([1, 3, 5, 7], strain:discard(fun(X) -> even(X) end, [1,3,5,7])).

discard_neither_first_nor_last_test() ->
  ?assertEqual([1, 3], strain:discard(fun(X) -> even(X) end, [1,2,3])).

discard_strings_test() ->
  Str = ["apple", "zebra", "banana", "zombies", "cherimoya", "zealot"],
  ?assertEqual(
     ["apple", "banana", "cherimoya"],
     strain:discard(fun(S) -> string:sub_string(S, 1,1) =:= "z" end, Str)).

odd(N) -> N rem 2 > 0.

even(N) -> N rem 2 =:= 0.

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
trackler-2.0.6.28 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.27 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.26 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.25 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.24 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.23 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.22 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.21 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.20 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.19 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.18 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.17 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.16 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.15 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.14 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.13 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.12 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.11 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.10 tracks/erlang/exercises/strain/strain_tests.erl
trackler-2.0.6.9 tracks/erlang/exercises/strain/strain_tests.erl