Allow idx be TileExtent for assign; add more tests