Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions exercise.main/Core.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,31 @@ public class Core
public bool winningPair(IEnumerable<Tuple<string, string>> hand, out Tuple<string, string> result)
{
result = new Tuple<string,string>(string.Empty, string.Empty);



int winningHand = 0;



return result.Item1!=string.Empty ? true : false;
foreach (var pair in hand)
{
if (pair.Item1 == pair.Item2 && GetValueOfCard(pair.Item1) > winningHand)
{
winningHand = GetValueOfCard(pair.Item1);
result = pair;
}
}
return winningHand > 0;
}
public int GetValueOfCard(string card)
{
return 0;
if(Int32.TryParse(card, out int result)) return result;

switch (card.ToUpper())
{
case "J": { return 11; break; }
case "Q": { return 12; break; }
case "K": { return 13; break; }
case "A": { return 14; break; }
default: return 0;
}
}
}
}
26 changes: 25 additions & 1 deletion exercise.main/Extension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,31 @@ public bool winningThree(IEnumerable<Tuple<string, string, string>> hand, out Tu
{
result = new Tuple<string, string, string>(string.Empty, string.Empty, string.Empty);

return false;
int winningHand = 0;

foreach (var triplet in hand)
{
if (triplet.Item1 == triplet.Item2 && triplet.Item1 == triplet.Item3 && GetValueOfCard(triplet.Item1) > winningHand)
{
winningHand = GetValueOfCard(triplet.Item1);
result = triplet;
}
}
return winningHand > 0;
}

public int GetValueOfCard(string card)
{
if (Int32.TryParse(card, out int result)) return result;

switch (card.ToUpper())
{
case "J": { return 11; break; }
case "Q": { return 12; break; }
case "K": { return 13; break; }
case "A": { return 14; break; }
default: return 0;
}
}

}
Expand Down
75 changes: 75 additions & 0 deletions exercise.tests/ExtensionTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
using exercise.main;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace exercise.tests
{
[TestFixture]
public class ExtensionTests
{
[Test]
public void Scenario1()
{
Extension ext = new Extension();

List<Tuple<string, string, string>> hand = new List<Tuple<string, string, string>>
{
new Tuple<string, string, string>("K", "5", "K"),
new Tuple<string, string, string>("3","7", "3")
};
Tuple<string, string, string> winner;

bool result = ext.winningThree(hand, out winner);

Assert.That(result, Is.False);
Assert.That(winner.Item1, Is.EqualTo(String.Empty));
Assert.That(winner.Item2, Is.EqualTo(String.Empty));
Assert.That(winner.Item2, Is.EqualTo(String.Empty));
}

[Test]
public void Scenario2()
{
Extension ext = new Extension();

List<Tuple<string, string, string>> hand = new List<Tuple<string, string, string>>
{
new Tuple<string, string, string>("5", "5", "K"),
new Tuple<string, string, string>("J","J", "J")
};
Tuple<string, string, string> winner;

bool result = ext.winningThree(hand, out winner);

Assert.That(result, Is.True);
Assert.That(winner.Item1, Is.EqualTo("J"));
Assert.That(winner.Item1, Is.EqualTo("J"));
Assert.That(winner.Item1, Is.EqualTo("J"));

}

[Test]
public void Scenario3()
{
Extension ext = new Extension();

List<Tuple<string, string, string>> hand = new List<Tuple<string, string, string>>
{
new Tuple<string, string, string>("7", "7", "7"),
new Tuple<string, string, string>("A","A", "A")
};
Tuple<string, string, string> winner;

bool result = ext.winningThree(hand, out winner);

Assert.That(result, Is.True);
Assert.That(winner.Item1, Is.EqualTo("A"));
Assert.That(winner.Item1, Is.EqualTo("A"));
Assert.That(winner.Item1, Is.EqualTo("A"));

}
}
}