Example #1
0
        private static bool DrivePartitionAlgorithm_Sequential(PartitionAlgorithmTest t)
        {
            bool passed = true;

            //
            // These tests ensure that all of the source elements are represented in the output.
            // We use different combinations of consumption and data/partition sizes.
            //

            // -- IEnumerable data source --

            passed &= t.RunPartA1_IEnumerable(1024 * 2, 8); // even # of data elements
            passed &= t.RunPartA1_IEnumerable(1023 * 3, 8); // odd # of data elements
            passed &= t.RunPartA1_IEnumerable(1024 * 2, 3); // strange partition count
            passed &= t.RunPartA1_IEnumerable(0, 8);        // empty data size
            passed &= t.RunPartA1_IEnumerable(1, 8);        // small data size
            passed &= t.RunPartA1_IEnumerable(2048, 1);     // one partition

            // Do a ref and value type:
            passed &= t.RunPartA2_IEnumerable_DrainOneThenNext <object>(1024, 4, delegate { return(new object()); });
            passed &= t.RunPartA2_IEnumerable_DrainOneThenNext <float>(1024, 4, delegate(int i) { return((float)i); });
            passed &= t.RunPartA2_IEnumerable_DrainOneThenNext <object>(1024 * 8, 8, delegate { return(new object()); });
            passed &= t.RunPartA2_IEnumerable_DrainOneThenNext <float>(1024 * 8, 8, delegate(int i) { return((float)i); });
            passed &= t.RunPartA3_IEnumerable_DrainAllEvenly <object>(1024, 4, delegate { return(new object()); });
            passed &= t.RunPartA3_IEnumerable_DrainAllEvenly <float>(1024, 4, delegate(int i) { return((float)i); });
            passed &= t.RunPartA3_IEnumerable_DrainAllEvenly <object>(1024 * 8, 8, delegate { return(new object()); });
            passed &= t.RunPartA3_IEnumerable_DrainAllEvenly <float>(1024 * 8, 8, delegate(int i) { return((float)i); });
            passed &= t.RunPartA3_IEnumerable_DrainAllEvenly <long>(1024 * 8, 8, delegate(int i) { return((long)i); });

            // @BUGBUG: disabled. Marshal.SizeOf throws for non-integral data types.
            // passed &= RunPartA3_IEnumerable_DrainAllEvenly<DateTime>(1024 * 8, 8, delegate(int i) { return new DateTime((long)i); });

            return(passed);
        }
Example #2
0
        internal static bool DrivePartitionAlgorithm_Parallel(PartitionAlgorithmTest t)
        {
            bool passed = true;

            // -- IEnumerable data source --

            // Concurrent:
            passed &= t.RunPartC1_IEnumerable_InParallel <object>(1024 * 8, 8, delegate { return(new object()); });
            passed &= t.RunPartC1_IEnumerable_InParallel <float>(1024 * 8, 8, delegate(int i) { return((float)i); });
            passed &= t.RunPartC1_IEnumerable_InParallel <object>(1024 * 8, 4, delegate { return(new object()); });
            passed &= t.RunPartC1_IEnumerable_InParallel <float>(1024 * 8, 4, delegate(int i) { return((float)i); });

            return(passed);
        }