Dot product in shaders not working

Look at this code and tell me, which color shader will return?

fixed4 frag (v2f i) : SV_Target
	{
		fixed4 col;
		half3 aa = (1, 0,0);
		half3 bb = (1, 0,0);
		half Test = (0.5 + 0.5 * dot(aa, bb));

		col.x = Test;
		col.y = Test;
		col.z = Test;
		col.w = 1;
		return col;
	}

If you said white (because it’s obvious that dot product two equal vectors must be 1), well you wrong. Final color of plane is gray.

So why is that?? It’s definitely not because I using half3 (float3 and fixed3 not working as well), and yes I included “UnityCG.cginc”.

The fun part is that

(dot(i.normal, _WorldSpaceLightPos0) * 0.5 + 0.5);

working fine…
So does anyone has any suggestions? Is it bug or something?

Ok…

So first of all it has no relation to the dot product. The problem was in incorrect initiation of vector (not (1,0,0) but float3(1,0,0)).

And secondly, (just in the case someone like me didn’t know) dot product return not cos between two vectors, but multiplication of cos and lengths of these vectors. It’s important if you multiply not unit vectors.