Ejemplo n.º 1
0
    public void Multithreaded()
    {
        var seq    = new SpreadByteSequence();
        var memory = new byte[256];
        var tasks  = new Task[16];

        for (var t = 0; t < tasks.Length; t++)
        {
            tasks[t] = Task.Run(delegate {
                for (var i = 0; i < 256; i++)
                {
                    memory[seq.Next()] += 1;
                }
            });
        }
        foreach (var task in tasks)
        {
            task.Wait();
        }

        foreach (var mem in memory)
        {
            Assert.Equal(16, mem);
        }
    }
Ejemplo n.º 2
0
    public void NonRepeat()
    {
        var seq    = new SpreadByteSequence();
        var memory = new byte[256];

        for (var i = 0; i < 256; i++)
        {
            var value = seq.Next();
            memory[value]++;
            Assert.Equal(1, memory[value]);
        }
    }
Ejemplo n.º 3
0
    public void NonRepeat2()
    {
        var seq    = new SpreadByteSequence();
        var memory = new byte[256];

        for (var i = 0; i < 10 * 256; i++)
        {
            var value = seq.Next();
            memory[value]++;
        }
        foreach (var mem in memory)
        {
            Assert.Equal(10, mem);
        }
    }
Ejemplo n.º 4
0
    public void AsNumber()
    {
        var seq = new SpreadByteSequence(0);

        Assert.Equal(0x9D, seq.Next());
        Assert.Equal(0x3A, seq.Next());
        Assert.Equal(0xD7, seq.Next());
        Assert.Equal(0x74, seq.Next());
        Assert.Equal(0x11, seq.Next());
        Assert.Equal(0xAE, seq.Next());
        Assert.Equal(0x4B, seq.Next());
        Assert.Equal(0xE8, seq.Next());
        Assert.Equal(0x85, seq.Next());
        Assert.Equal(0x22, seq.Next());
        Assert.Equal(0xBF, seq.Next());
        Assert.Equal(0x5C, seq.Next());
        Assert.Equal(0xF9, seq.Next());
    }