FString::Compare is a 3-way comparison function… it returns <0 if the first string is lexicographically before the second, >0 if it’s lexicographically after and ==0 if they are lexicographically equal. So they are in fact comparing equal, because Compare is returning zero, which is ‘false’.
If you do this, you should get ‘true’:
if (test.ToString().ToLower() == FText().FromString("ls").ToString())