在随机序列上多次使用 take(n)

Using take(n) more than once on Random sequence

我想从随机序列中提取字符串组。我发现 Randoms.takeFromValues 提供了一个最适合这个的序列。但它并没有像预期的那样安静地工作。我确定我做错了什么。这是一个测试代码,它在第二次断言时失败,因为 list2 的大小是 2 而不是 3.

@Test
public void totallylazy_random_sequence_test() {
    List<String> strings = list("string-1","string-2","string-3","string-4","string-5","string-6");
    Sequence<String> selector = Randoms.takeFromValues(strings);
    List<String> list1 = selector.take(3).toList();
    List<String> list2 = selector.take(3).toList();
    assertThat(list1.size(), is(3));
    assertThat(list2.size(), is(3));
}

您使用的是什么版本的 TL?我认为这可能是由这个较旧的错误引起的:

https://github.com/bodar/totallylazy/issues/15