<commit_before>import XCTest
import Nimble

class SatisfyOneOfTest: XCTestCase {
    func testSatisfyOneOf() {
        expect(2).to(satisfyOneOf(equal(2), equal(3)))
        expect(2).toNot(satisfyOneOf(equal(3), equal("turtles")))
        expect([1,2,3]).to(satisfyOneOf(equal([1,2,3]), allPass({$0 < 4}), haveCount(3)))
        
        failsWithErrorMessage(
            "expected to match one of: {equal <3>}, {equal <4>}, {equal <5>}, got 2") {
                expect(2).to(satisfyOneOf(equal(3), equal(4), equal(5)))
        }
        failsWithErrorMessage(
            "expected to match one of: {all be less than 4, but failed first at element <5> in <[5, 6, 7]>}, {equal <[1, 2, 3, 4]>}, got [5, 6, 7]") {
                expect([5,6,7]).to(satisfyOneOf(allPass("be less than 4", {$0 < 4}), equal([1,2,3,4])))
        }
    }
}<commit_msg>Expand satisfyOneOf testing<commit_after>import XCTest
import Nimble

class SatisfyOneOfTest: XCTestCase {
    func testSatisfyOneOf() {
        expect(2).to(satisfyOneOf(equal(2), equal(3)))
        expect(2).toNot(satisfyOneOf(equal(3), equal("turtles")))
        expect([1,2,3]).to(satisfyOneOf(equal([1,2,3]), allPass({$0 < 4}), haveCount(3)))
        expect("turtle").toNot(satisfyOneOf(contain("a"), endWith("magic")))
        expect(82.0).toNot(satisfyOneOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1)))
        
        failsWithErrorMessage(
            "expected to match one of: {equal <3>}, {equal <4>}, {equal <5>}, got 2") {
                expect(2).to(satisfyOneOf(equal(3), equal(4), equal(5)))
        }
        failsWithErrorMessage(
            "expected to match one of: {all be less than 4, but failed first at element <5> in <[5, 6, 7]>}, {equal <[1, 2, 3, 4]>}, got [5, 6, 7]") {
                expect([5,6,7]).to(satisfyOneOf(allPass("be less than 4", {$0 < 4}), equal([1,2,3,4])))
        }
        failsWithErrorMessage(
            "expected to match one of: {be true}, got false") {
                expect(false).to(satisfyOneOf(beTrue()))
        }
        failsWithErrorMessage(
            "expected to not match one of: {be less than <10.5000>}, {be greater than <100.7500>}, {be close to <50.1000> (within 0.0001)}, got 50.10001") {
                expect(50.10001).toNot(satisfyOneOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1)))
        }
    }
}
{'fraction_non_alphanumeric': 0.1807382265591854, 'fraction_numerical': 0.06406448875689436, 'mean_word_length': 2.93, 'pattern_counts': {'":': 0, '<': 22, '<?xml version=': 0, '>': 18, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4111656', 'n_tokens_mistral': 924, 'n_tokens_neox': 852, 'n_words': 186}