test_allocate
test_allocate(1, 40, 50, 20, 20, 40, 50, true); // touch start
test_allocate(2, 40, 50, 20, 19, 40, 50, true); // don't touch start
test_allocate(3, 40, 10, 40, 1, 41, 9, false); // cut start
test_allocate(4, 40, 50, 40, 1, 41, 49, true); // cut start
test_allocate(5, 40, 50, 90, 1, 40, 50, true); // touch end
test_allocate(6, 40, 50, 89, 1, 40, 49, true); // cut end
test_allocate(7, 40, 20, 59, 1, 40, 19, false); // cut end
test_allocate(8, 0, 51, 0, 1, 1, 50, true); // cut start
test_allocate(9, 0, 51, 0, 2, 2, 49, true); // cut start
test_allocate(10, 0, 51, 0, 3, 3, 48, false); // cut start