public void DeNormalizeGeneralCorrectnessTest() { int m = 10000, n = 100; double epsilon = 0.000000001; Random rnd = new Random(); double[][] iData = new double[m][]; for (int i = 0; i < m; ++i) { iData[i] = new double[n]; for (int j = 0; j < n; ++j) { iData[i][j] = rnd.Next(); } } double iA = 0.1; double iB = 0.9; DataNormalizer target = new DataNormalizer(iData, iA, iB); double[][] normalized = target.Normalize(iData); Assert.AreEqual(iA, normalized.Min(row => row.Min()), epsilon); Assert.AreEqual(iB, normalized.Max(row => row.Max()), epsilon); double maxAllowedError = 0.1, expectedAvg = 0.5, actualAvg = normalized.Average(row => row.Average()); Assert.AreEqual(expectedAvg, actualAvg, maxAllowedError); double[][] actual = target.DeNormalize(normalized); AssertMatrixAreEqual(iData, actual); }
public void DeNormalizeGeneralCorrectnessTest() { int m = 10000, n = 100; double epsilon = 0.000000001; Random rnd = new Random(); double[][] iData = new double[m][]; for (int i = 0; i < m; ++i) { iData[i] = new double[n]; for (int j = 0; j < n; ++j) iData[i][j] = rnd.Next(); } double iA = 0.1; double iB = 0.9; DataNormalizer target = new DataNormalizer(iData, iA, iB); double[][] normalized = target.Normalize(iData); Assert.AreEqual(iA, normalized.Min(row => row.Min()), epsilon); Assert.AreEqual(iB, normalized.Max(row => row.Max()), epsilon); double maxAllowedError = 0.1, expectedAvg = 0.5, actualAvg = normalized.Average(row => row.Average()); Assert.AreEqual(expectedAvg, actualAvg, maxAllowedError); double[][] actual = target.DeNormalize(normalized); AssertMatrixAreEqual(iData, actual); }