Sha256: 8912b51fceedaa744ee9cba7865c02edf2ce91d036495b4848089d18164334bb

Contents?: true

Size: 1.82 KB

Versions: 281

Compression:

Stored size: 1.82 KB

Contents

using System;
using System.Collections.Generic;
using System.Linq;
using Xunit;

public class AccumulateTest
{
    [Fact]
    public void Empty_accumulation_produces_empty_accumulation()
    {
        Assert.Equal(new int[0], new int[0].Accumulate(x => x * x));
    }

    [Fact(Skip = "Remove to run test")]
    public void Accumulate_squares()
    {
        Assert.Equal(new[] { 1, 4, 9 }, new[] { 1, 2, 3 }.Accumulate(x => x * x));
    }

    [Fact(Skip = "Remove to run test")]
    public void Accumulate_upcases()
    {
        Assert.Equal(new List<string> { "HELLO", "WORLD" }, new List<string> { "hello", "world" }.Accumulate(x => x.ToUpper()));
    }

    [Fact(Skip = "Remove to run test")]
    public void Accumulate_reversed_strings()
    {
        Assert.Equal("eht kciuq nworb xof cte".Split(' '), "the quick brown fox etc".Split(' ').Accumulate(Reverse));
    }

    private static string Reverse(string value)
    {
        var array = value.ToCharArray();
        Array.Reverse(array);
        return new string(array);
    }

    [Fact(Skip = "Remove to run test")]
    public void Accumulate_within_accumulate()
    {
        var actual = new[] { "a", "b", "c" }.Accumulate(c =>
            string.Join(" ", new[] { "1", "2", "3" }.Accumulate(d => c + d)));
        Assert.Equal(new[] { "a1 a2 a3", "b1 b2 b3", "c1 c2 c3" }, actual);
    }

    [Fact(Skip = "Remove to run test")]
    public void Accumulate_is_lazy()
    {
        var counter = 0;
        var accumulation = new[] { 1, 2, 3 }.Accumulate(x => x * counter++);

        Assert.Equal(0, counter);
        accumulation.ToList();
        Assert.Equal(3, counter);
    }

    [Fact(Skip = "Remove to run test")]
    public void Accumulate_allows_different_return_type()
    {
        Assert.Equal(new[] { "1", "2", "3" }, new[] { 1, 2, 3 }.Accumulate(x => x.ToString()));
    }
}

Version data entries

281 entries across 281 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.179 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.178 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.177 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.176 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.175 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.174 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.173 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.172 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.171 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.170 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.169 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.167 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.166 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.165 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.164 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.163 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.162 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.161 tracks/csharp/exercises/accumulate/AccumulateTest.cs
trackler-2.2.1.160 tracks/csharp/exercises/accumulate/AccumulateTest.cs