public void TestCopy () {
			Match m = new Match( voidPattern, null, 3, 2, +1, 1 );
			Match sub1 = new Match( voidPattern, null, 4, 2, +1, 0.5 );

			sub1.Impact = 0.5;

			Match sub2 = new Match( voidPattern, null, 5, 2, +1, 0.1 );
			sub2.Impact = 0.7;

			m.SubMatches.Add( sub1 );
			m.SubMatches.Add( sub2 );

			Match mc = m.Clone();

			Assert.AreEqual( 2, m.SubMatches.Count );
			Assert.AreEqual( 2, mc.SubMatches.Count );
			Assert.IsTrue( mc != m );
			Assert.IsTrue( sub1 != mc.SubMatches[0] );
			Assert.IsTrue( sub2 != mc.SubMatches[1] );
			Assert.AreEqual( 3, mc.Start );
			Assert.AreEqual( 4, mc.SubMatches[0].Start );
			Assert.AreEqual( 5, mc.SubMatches[1].Start );
			Assert.AreEqual( 0.5, mc.SubMatches[0].Impact, 1e-10 );
			Assert.AreEqual( 0.7, mc.SubMatches[1].Impact, 1e-10 );
		}