Sha256: 70127c59a8bfe41e3dd569b507521d584cf81dad763cdead2c966466034d1045

Contents?: true

Size: 1.99 KB

Versions: 20

Compression:

Stored size: 1.99 KB

Contents

module series;

import std.exception;
import std.algorithm.comparison : equal;

unittest
{

immutable int allTestsEnabled = 0;

// short_digits
{
	const int[] expected = [0, 1, 2, 3, 4, 5];
	const int[] actual = digits("012345");

	assert(equal(actual, expected));
}

static if (allTestsEnabled)
{
// long_digits
{
	const int[] expected = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
	const int[] actual = digits("0123456789");

	assert(equal(actual, expected));
}

// keeps_the_digit_order_if_reversed
{
	const int[] expected = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
	const int[] actual = digits("9876543210");

	assert(equal(actual, expected));
}

// keeps_arbitrary_digit_order
{
	const int[] expected = [9, 3, 6, 9, 2, 3, 4, 6, 8];
	const int[] actual = digits("936923468");

	assert(equal(actual, expected));
}

// can_slice_by_1
{
	const int[][] expected = [[0], [1], [2], [3], [4]];
	const int[][] actual = slice("01234", 1);

	assert(equal(actual, expected));
}

// can_slice_by_2
{
	const int[][] expected = [[9, 8], [8, 2], [2, 7], [7, 3], [3, 4], [4, 6], [6, 3]];
	const int[][] actual = slice("98273463", 2);

	assert(equal(actual, expected));
}

// can_slice_by_3
{
	const int[][] expected = [[0, 1, 2], [1, 2, 3], [2, 3, 4]];
	const int[][] actual = slice("01234", 3);

	assert(equal(actual, expected));
}

// can_slice_by_3_with_duplicate_digits
{
	const int[][] expected = [[3, 1, 0], [1, 0, 0], [0, 0, 1]];
	const int[][] actual = slice("31001", 3);

	assert(equal(actual, expected));
}

// can_slice_by_4
{
	const int[][] expected = [[3, 1, 0], [1, 0, 0], [0, 0, 1]];
	const int[][] actual = slice("31001", 3);

	assert(equal(actual, expected));
}

// can_slice_by_5
{
	const int[][] expected = [[8, 1, 2, 2, 8]];
	const int[][] actual = slice("81228", 5);

	assert(equal(actual, expected));
}

// exception_if_not_enough_digits_to_slice
{
	assertThrown(slice("01032987583", 12));
}

// exception_if_invalid_input
{
	assertThrown(slice("01032i987583", 12));
}

// exception_if_invalid_input_2
{
	assertThrown(digits("01032i987583"));
}

}

}

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
trackler-2.1.0.48 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.47 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.46 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.45 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.44 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.43 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.42 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.41 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.40 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.39 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.38 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.37 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.36 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.34 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.33 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.32 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.31 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.30 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.29 tracks/dlang/exercises/series/source/series.d
trackler-2.1.0.28 tracks/dlang/exercises/series/source/series.d