added failing NaN test
fixed check_symmetric so it throws for NaNs not on the main diagonal