hamcrest的替代方案包含任何订单第一赢策略

hamcrest的替代方案包含任何订单第一赢策略,hamcrest,Hamcrest,考虑以下测试: @Test public void containsInAnyOrderImplementsFirstWinStrategy() { List<Integer> list = Arrays.asList(1, 2, 3, 4); assertThat(list, IsIterableContainingInAnyOrder.containsInAnyOrder( Matchers.greaterThan(3), Matchers.less

考虑以下测试:

@Test
public void containsInAnyOrderImplementsFirstWinStrategy() {
    List<Integer> list = Arrays.asList(1, 2, 3, 4);
    assertThat(list, IsIterableContainingInAnyOrder.containsInAnyOrder(
       Matchers.greaterThan(3), Matchers.lessThan(5), equalTo(1), equalTo(2)));
}
@测试
public void包含任何订单实现firstwinsttrategy(){
List=Arrays.asList(1,2,3,4);
资产(列表,ISiterableContainingAnyOrder.containsInAnyOrder(
匹配者。大于(3),匹配者。小于(5),等于(1),等于(2));
}
我希望测试是绿色的,但失败的原因是:

java.lang.AssertionError: 预期:可按任意顺序与项[值大于,值小于,]匹配 但是:不匹配:

据我所知,原因是hamcrest采取了先赢策略,由于lessThan(5)与1场比赛,该匹配者不再可用于匹配
3

是否有其他方法可以实现更完整的
containsInAnyOrder
(以更大的O为代价)