function assertAutoDelete( t, fixture, done ) {
	var expected;
	var istream;
	var opts;
	var N;
	var r;

	istream = new DebugStream({
		'name': 'repl-input-stream'
	});
	opts = {
		'input': istream,
		'inputPrompt': '',
		'quiet': true,
		'settings': defaultSettings()
	};
	r = repl( opts, onClose );

	istream = new DebugStream({
		'name': 'repl-input-stream'
	});
	opts = {
		'input': istream,
		'inputPrompt': '',
		'quiet': true,
		'settings': defaultSettings()
	};
	r = repl( opts, onClose );

	// Construct the expected output:
	expected = fixture.expression.substring( 0, fixture.cursor-1 );
	expected += fixture.expression.substring( fixture.cursor+1 );

	// Emulate the presence of an existing expression:
	istream.write( fixture.expression );

	// Move the cursor to where we want to delete a character:
	N = fixture.expression.length - fixture.cursor;
	moveBack( istream, N );

	// Enable auto-delete:
	r.settings( 'autoDeletePairs', true );

	// Delete the character in order to trigger auto-delete:
	istream.write( '\u0008' );

	// Close the input stream:
	istream.end();

	// Close the REPL:
	r.close();

	function onClose( error, data ) {
		var actual;
		if ( error ) {
			t.fail( error.message );
			return;
		}
		actual = processOutput( data, N === 0 );
		t.strictEqual( actual, expected, 'returns expected value' );
		done();
	}
}
Asserts that a provided expression triggers expected automatic deletion of closed symbols.

@private
@param {Object} t - test object
@param {Object} fixture - fixture object
@param {string} fixture.expression - incomplete expression string
@param {NonNegativeInteger} fixture.cursor - cursor position for deleting a character
@param {Function} done - callback to invoke upon completion