UV tiling to fill face?

I have a mesh and uvs that I generate, and I want it to tile vertically and fill the face, but instead it turns out like this

Here is my code

		for(int i = 0; i < topUvs.Length; i++){
			if(select == 4){ select = 0; }
				case 0: topUvs *= new Vector2(0, 2); break;*

_ case 1: topUvs = new Vector2(0, 0); break;_
_ case 2: topUvs = new Vector2(1, 2); break;
case 3: topUvs = new Vector2(1, 0); break;
* }
select += 1;

The code i have for assigning the uvs has seemed to work, but I think there is something that i am missing that i need to do to make it tile the way i want.

Make sure your Texture.wrapMode is set to repeat, not clamp