Skip to content

Instantly share code, notes, and snippets.

let localEmail = allowedLocalCharacters
.proliferateNonEmpty // Make a non-empty array of characters
.suchThat { $0[$0.index(before: $0.endIndex)] != "." }
.map { String($0) } // Then make a string.
let hostname = Gen<Character>.one(of: [
lowerCaseLetters,
numeric,
Gen.pure("-"), // Only generate this character
]).proliferateNonEmpty.map { String($0) }
let tld : Gen<Character> = Gen<Character>.fromElements(of: ["com", "de", "net", "org", "io"])
extension Email: Arbitray {
public static var arbitrary: Gen<Email> {
return Gen.compose { comp in
return Email(comp.generate(localEmail), comp.generate(hostname), comp.generate(tld))
}
}
}
// our algorithm has this signature
func isCorrectEmail(email Email) -> Bool
property("emails should always be correct") <- forAll { (email: Email) in
return isCorrectEmail(email)
}
func getRandomCoordinate() -> XCUICoordinate {
let x = CGFloat(Float(arc4random()) / Float(UINT32_MAX))
let y = CGFloat(Float(arc4random()) / Float(UINT32_MAX))
let vector = CGVector(dx: x, dy: y)
let coordinate = getCoordinateForVector(vector: vector)
return coordinate
}
func testMonkey() {
let application = XCUIApplication(bundleIdentifier: "de.olbrich.jan.SnapshotTesting")
_ = application.descendants(matching: .any).element(boundBy: 0).frame
let monkey = Monkey(frame: application.frame)
monkey.addDefaultUIAutomationActions()
monkey.addXCTestTapAlertAction(interval: 100, application: application)
monkey.monkeyAround()
}
var paws: MonkeyPaws?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if CommandLine.arguments.contains("--MonkeyPaws") {
paws = MonkeyPaws(view: window!)
}
return true
}
func method1() {
statement1()
statement2()
statement3()
statement4()
}
func method2() {
statement1 {
callback1()
}
statement2
}