add more cpp tests, address floating issues