 		}
 
 		mainContext = NSManagedObjectContext(parent: .persistentStore(storeCoordinator),
-		                                         concurrencyType: .mainQueueConcurrencyType)
+		                                     concurrencyType: .mainQueueConcurrencyType)
 	}
 
 	override func tearDown() {

			// verify results
			expect(collection.sectionCount) == 1
			expect(collection.rowCount(for: 0)) == times

			for indexPath in collection.indices {
				expect(collection[indexPath].value) == Int64(indexPath.row)
			}
		}

		self.mainContext.reset()
	}

	func testOCInsertionPerformance_10000_iterations() {
		measureOCInsertionPerformance(times: 10000)
	}

	func testOCInsertionPerformance_2000_iterations() {
		measureOCInsertionPerformance(times: 2000)
	}

	func testOCInsertionPerformance_1000_iterations() {
		measureOCInsertionPerformance(times: 1000)
	}

	func testOCInsertionPerformance_100_iterations() {
		measureOCInsertionPerformance(times: 100)
	}

	func testOCInsertionPerformance_10_iterations() {
		measureOCInsertionPerformance(times: 10)
	}


			// verify results
			expect(controller.sections?.count) == 1
			expect(controller.sections!.first!.numberOfObjects) == times
		}

		self.mainContext.reset()
	}

	func testInsertion_10000_FRC_iteration() {
		measureFRCInsertionPerformance(times: 10000)
	}

	func testInsertion_2000_FRC_iteration() {
		measureFRCInsertionPerformance(times: 2000)
	}

	func testInsertion_1000_FRC_iterations() {
		measureFRCInsertionPerformance(times: 1000)
	}

	func testInsertion_100_FRC_iterations() {
		measureFRCInsertionPerformance(times: 100)
	}

	func testInsertion_10_FRC_iterations() {
		measureFRCInsertionPerformance(times: 10)
	}


	func measureFRCReadPerformance(times: Int) {
		for i in 0 ..< times {
			let children = Children(context: mainContext)
			children.value = Int64(i)
		}

		mainContext.processPendingChanges()

		let controller = Children.query(self.mainContext)
			.sort(by: .ascending("value"))
			.makeController()

		let receiver = Receiver()
		controller.delegate = receiver

		expect { try controller.performFetch() }.toNot(throwError())

		measure {
			// verify results
			expect(controller.sections?.count) == 1
			expect(controller.sections!.first!.numberOfObjects) == times

			for objectIndex in 0 ..< controller.sections!.first!.numberOfObjects {
				XCTAssertTrue(controller.object(at: IndexPath(row: objectIndex, section: 0)).value == Int64(objectIndex))
			}
		}

		self.mainContext.reset()
	}

	func testRead_10000_FRC_iteration() {
		measureFRCReadPerformance(times: 10000)
	}

	func testRead_2000_FRC_iteration() {
		measureFRCReadPerformance(times: 2000)
	}

	func testRead_1000_FRC_iterations() {
		measureFRCReadPerformance(times: 1000)
	}

	func testRead_100_FRC_iterations() {
		measureFRCReadPerformance(times: 100)
	}

	func testRead_10_FRC_iterations() {
		measureFRCReadPerformance(times: 10)
	}

	override func setUp() {
