public void computeGaussianPerplexity2_larger()
{
var points = yinyang.Submatrix(null, 0, 1).ToJagged();
double perplexity = 0.5;
int N = points.Rows();
int D = points.Columns();
int K = (int)(3 * perplexity);
double[,] X = points.ToMatrix();
double[][] x = X.ToJagged();
uint[] expected_row = Vector.Zeros<uint>(200);
uint[] expected_col = Vector.Zeros<uint>(200);
double[] expected_val = Vector.Zeros<double>(200);
TSNEWrapper.computeGaussianPerplexity(X, N, D, expected_row, expected_col, expected_val, perplexity, K);
int[] actual_row = null;
int[] actual_col = null;
double[] actual_val = null;
TSNE.computeGaussianPerplexity(x, N, D, ref actual_row, ref actual_col, ref actual_val, perplexity, K);
expected_row = expected_row.First(101);
expected_col = expected_col.First(100);
expected_val = expected_val.First(100);
Assert.IsTrue(actual_row.IsEqual(expected_row));
Assert.IsTrue(actual_col.IsEqual(expected_col));
Assert.IsTrue(actual_val.IsEqual(expected_val, 1e-4));
}