| 
					
				 | 
			
			
				@@ -110,6 +110,17 @@ func TestFused(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	assert.Equal(t, int64(6), status[1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func TestInsertSameTime(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file, status := fixture() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(0, 5, 10, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump := file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// Output: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 0 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 110 -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 0\n110 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(110), status[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func TestInsertSameStart(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	file, status := fixture() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	file.Update(1, 10, 10, 0) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -241,3 +252,68 @@ func TestTorture(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	assert.Equal(t, int64(0), status[7]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	assert.Equal(t, int64(10), status[8]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func TestInsertDeleteSameTime(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file, status := fixture() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(0, 10, 10, 20) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump := file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 0\n90 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(90), status[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(0, 10, 20, 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump = file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 0\n100 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(100), status[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func TestBug1(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file, status := fixture() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(316, 1, 86, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(316, 87, 0, 99) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(251, 0, 1, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(251, 1, 0, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump := file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 251\n1 316\n87 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(1), status[251]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(86), status[316]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(316, 0, 0, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(316, 0, 1, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump = file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 316\n87 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(0), status[251]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(87), status[316]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func TestBug2(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file, status := fixture() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(316, 1, 86, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(316, 87, 0, 99) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(251, 0, 1, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(251, 1, 0, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump := file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 251\n1 316\n87 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(316, 0, 1, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump = file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 316\n87 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(0), status[251]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(87), status[316]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func TestJoin(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file, status := fixture() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(1, 10, 10, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(1, 30, 10, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(1, 20, 10, 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump := file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 0\n10 1\n40 0\n120 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(90), status[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(30), status[1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func TestBug3(t *testing.T) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file, status := fixture() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(0, 1, 0, 99) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file.Update(0, 0, 1, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dump := file.Dump() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, "0 0\n1 -1\n", dump) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	assert.Equal(t, int64(1), status[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |