コード例 #1
0
    public void FilterPreviousChained()
    {
        var list      = new NativeList <int>(3, Allocator.TempJob);
        var jobHandle = new FilterAllJob().ScheduleAppend(list, 14, 3);

        jobHandle = new FilterMod7Job().ScheduleFilter(list, 3, jobHandle);

        jobHandle.Complete();

        Assert.AreEqual(2, list.Length);
        Assert.AreEqual(0, list[0]);
        Assert.AreEqual(7, list[1]);

        list.Dispose();
    }
コード例 #2
0
    public void FilterProduceChained()
    {
        var list      = new NativeList <int>(3, Allocator.TempJob);
        var jobHandle = new FilterMod7Job().ScheduleAppend(list, 14, 4);

        jobHandle = new FilterAllJob().ScheduleAppend(list, 2, 19, jobHandle);

        jobHandle.Complete();

        Assert.AreEqual(0, list[0]);
        Assert.AreEqual(7, list[1]);
        Assert.AreEqual(0, list[2]);
        Assert.AreEqual(1, list[3]);
        Assert.AreEqual(4, list.Length);

        list.Dispose();
    }
コード例 #3
0
    public void AddElementForEach([Values] bool userFilterJob)
    {
        var list = new NativeList <int>(0, Allocator.TempJob);

        list.Add(-1);
        list.Add(-2);

        if (userFilterJob)
        {
            var job = new FilterMod7Job();
            job.ScheduleAppend(list, 1000, 41).Complete();
        }
        else
        {
            var job = new NativeListAddMod7Job(list, 1000);
            job.Schedule().Complete();
        }

        int counter = 2;

        for (int i = 0; i != 1000; i++)
        {
            if (i % 7 == 0)
            {
                Assert.AreEqual(i, list[counter]);
                counter++;
            }
        }

        Assert.AreEqual(-1, list[0]);
        Assert.AreEqual(-2, list[1]);

        Assert.AreEqual(counter, list.Length);

        list.Dispose();
    }