Beispiel #1
0
        public static void FillArray(int[] array, FillArrayType type, int maxValue = 10, int defaultValue = 1)
        {
            for (var i = 0; i < array.Length; ++i)
            {
                switch (type)
                {
                case FillArrayType.Constant:
                    array[i] = defaultValue;
                    break;

                case FillArrayType.Random:
                    array[i] = randNum.Next(-maxValue, maxValue);
                    break;

                case FillArrayType.RandomNonNegative:
                    array[i] = randNum.Next(0, maxValue);
                    break;

                case FillArrayType.Reversed:
                    array[i] = array.Length - i;
                    break;

                case FillArrayType.DubleReversed:
                    array[i] = array.Length - (i % 2 == 0 ? i : i - 1);
                    break;

                case FillArrayType.Sorted:
                default:
                    array[i] = i;
                    break;
                }
            }
        }
Beispiel #2
0
    private void Test(int length, FillArrayType type)
    {
        // setup:
        var data = new int[length];

        Utils.FillArray(data, type);

        // when:
        var result = reducer.Reduce(data);

        // then:
        Assert.AreEqual(result, Utils.Reduce(data));
    }
    private void Test(int length, int bins, FillArrayType type)
    {
        // setup:
        var data = new int[length];

        Utils.FillArray(data, type);

        // when:
        var cpuResult = Utils.Histogram(data, bins);
        var gpuResult = gpuHist.Process(data, bins);

        // then:
        Assert.AreEqual(gpuResult.Length, bins);
        Assert.AreEqual(Utils.Reduce(gpuResult), length);

        for (var i = 0; i < bins; ++i)
        {
            Assert.AreEqual(gpuResult[i], cpuResult[i], "not eq at=" + i);
        }
    }
Beispiel #4
0
    private void Test(int length, FillArrayType type)
    {
        // setup:
        var data = new int[length];

        Utils.FillArray(data, type);

        // when:
        var gpuResult = gpuScan.Scan(data);

        // then:
        Assert.AreEqual(gpuResult.Length, length);

        var cpuResult = cpuScan.Scan(data);

        for (var i = 0; i < length; ++i)
        {
            Assert.AreEqual(gpuResult[i], cpuResult[i], "not eq at=" + i);
        }
    }
 private static void IntArray(ref int[] initial, int size, FillArrayType type, int maxValue, int constValue)
 {
     initial = (initial == null || initial.Length != size) ? new int[size] : initial;
     Utils.FillArray(initial, type, maxValue, constValue);
 }