Skip to content

Commit

Permalink
Completed basic support for format sequence.
Browse files Browse the repository at this point in the history
  • Loading branch information
tacosontitan committed Jul 21, 2024
1 parent b5e5b11 commit 839f9fa
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public static partial class Hussy
/// Creates a classic array string (e.g. <c>[1, 2, 3]</c>) for the specified sequence.
/// </summary>
/// <param name="sequence">The sequence to create the array string for.</param>
/// <param name="separator">The separator to use between elements (defaults to <c>, </c>).</param>
/// <typeparam name="T">Specifies the type of data in the sequence.</typeparam>
/// <returns>The input sequence wrapped in square brackets and separated by commas and spaces.</returns>
/// <example>
Expand All @@ -31,6 +32,8 @@ public static partial class Hussy
///
/// > [1, 2, 3, 4, 5]
/// </example>
public static string Far<T>(IEnumerable<T> sequence) =>
$"[{string.Join(", ", sequence)}]";
public static string Fsq<T>(
IEnumerable<T>? sequence,
string separator = ", ") =>
$"[{string.Join(separator, sequence ?? [])}]";
}
45 changes: 45 additions & 0 deletions test/Hussy.Net.Tests/Display/FormatSequenceTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Xunit;

namespace Hussy.Net.Tests.Display;

public class FormatArrayTests
{
[Fact]
public void FormatSequence_Null_ReturnsEmptyBrackets()
{
const string expectedResult = "[]";
var actualResult = Fsq<int>(null);
Assert.Equal(expectedResult, actualResult);
}

[Fact]
public void FormatSequence_EmptyInput_ReturnsEmptyBrackets()
{
const string expectedResult = "[]";
var actualResult = Fsq<int>([]);
Assert.Equal(expectedResult, actualResult);
}

[Fact]
public void FormatSequence_SequenceContainsElements_ReturnsElementsWrappedInBrackets()
{
const string expectedResult = "[1, 2, 3]";
var input = Enumerable.Range(1, 3);
var actualResult = Fsq(input);
Assert.Equal(expectedResult, actualResult);
}

[Fact]
public void FormatSequence_SpecifiedSeparator_ReturnsElementsWithSeparator()
{
const string separator = ":";
const string expectedResult = $"[1{separator}2]";
var input = Enumerable.Range(1, 2);
var actualResult = Fsq(input, separator);
Assert.Equal(expectedResult, actualResult);
}
}

0 comments on commit 839f9fa

Please sign in to comment.