Skip to content

Commit

Permalink
Fix #19 and updated the unit test and examples.
Browse files Browse the repository at this point in the history
  • Loading branch information
p00laris committed Oct 3, 2023
1 parent fd5bb5b commit ac410a0
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 41 deletions.
4 changes: 2 additions & 2 deletions AudioExample/MainWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ private async void ToAudioBtn_Click(object sender, EventArgs e)


//Update the richtextbox text to morse dash and dots.
MorseTxt.Text = await textConverter.ConvertTextToMorse(MessageMorseTxt.Text);
MorseTxt.Text = textConverter.ConvertTextToMorse(MessageMorseTxt.Text);

//Enable the play button to play
PlayBtn.Enabled = true;
Expand Down Expand Up @@ -82,7 +82,7 @@ private async void ToMorseKurdish_Click(object sender, EventArgs e)


//Update the richtextbox text to morse dash and dots.
MorseTxt.Text = await textConverter.ConvertTextToMorse(MessageMorseTxt.Text);
MorseTxt.Text = textConverter.ConvertTextToMorse(MessageMorseTxt.Text);

//Enable the play button to play
PlayBtn.Enabled = true;
Expand Down
4 changes: 2 additions & 2 deletions Example/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

try
{
morse = await Converter.ConvertTextToMorse("The quick brown fox jumps over the lazy dog");
text = await Converter.ConvertMorseToText("_ .... . / __._ .._ .. _._. _._ / _... ._. ___ .__ _. / .._. ___ _.._ / .___ .._ __ .__. ... / ___ ..._ . ._. / _ .... . / ._.. ._ __.. _.__ / _.. ___ __.");
morse = Converter.ConvertTextToMorse("The quick brown fox jumps over the lazy dog");
text = Converter.ConvertMorseToText("_ .... . / __._ .._ .. _._. _._ / _... ._. ___ .__ _. / .._. ___ _.._ / .___ .._ __ .__. ... / ___ ..._ . ._. / _ .... . / ._.. ._ __.. _.__ / _.. ___ __.");
}
catch (Exception ex)
{
Expand Down
15 changes: 8 additions & 7 deletions MorseSharp/Converter/TextMorseConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,16 @@ public TextMorseConverter(Language Language)
/// <returns><see cref="string"></see> of the morse result.</returns>
/// <exception cref="Exception">Throws if a character doesn't presented.</exception>
/// <exception cref="ArgumentNullException">Throws if the string text was null.</exception>
public Task<string> ConvertTextToMorse(string Text)
public string ConvertTextToMorse(string Text)
{
strBuilder!.Clear();

if ((language & nonLatin) == 0)
Text = Text.ToUpper();

if (Text is not null)
{
if ((language & nonLatin) == 0)
Text = Text.ToUpper();


for (int i = 0; i < Text.Length; i++)
{
if (morseChar.ContainsKey(Text[i]))
Expand All @@ -55,7 +56,7 @@ public Task<string> ConvertTextToMorse(string Text)
}

}
return Task.Run(() => strBuilder.ToString());
return strBuilder.ToString();
}

throw new ArgumentNullException(nameof(Text));
Expand All @@ -68,7 +69,7 @@ public Task<string> ConvertTextToMorse(string Text)
/// <returns><see cref="string"/>of the converted morse.</returns>
/// <exception cref="Exception">Throws if the morse letter was not presented.</exception>
/// <exception cref="ArgumentNullException">Throw if Morse param was null.</exception>
public Task<string> ConvertMorseToText(string Morse)
public string ConvertMorseToText(string Morse)
{
strBuilder!.Clear();

Expand All @@ -94,7 +95,7 @@ public Task<string> ConvertMorseToText(string Morse)
}
}

return Task.Run(() => strBuilder.ToString());
return strBuilder.ToString();
}
throw new ArgumentNullException(nameof(Morse));
}
Expand Down
4 changes: 2 additions & 2 deletions MorseSharp/MorseRepo/IMorseConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ public interface IMorseConverter
/// </summary>
/// <param name="Text">The <see cref="System.String"></see> to convert to morse code.</param>
/// <returns><see cref="string"></see> of the morse result.</returns>
Task<string> ConvertTextToMorse(string Text);
string ConvertTextToMorse(string Text);
/// <summary>
/// Converts a morse message to english sentence
/// </summary>
/// <param name="Morse">The <see cref="string"/> of the morse message.</param>
/// <returns><see cref="string"/>of the converted morse.</returns>
Task<string> ConvertMorseToText(string Morse);
string ConvertMorseToText(string Morse);
}
}
40 changes: 20 additions & 20 deletions MorseTest/Languages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,103 +10,103 @@ namespace MorseTest
public class Languages
{
[Fact]
public async void EnglishToMorse()
public void EnglishToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.English);

var morse = await Converter.ConvertTextToMorse("The quick brown fox jumps over the lazy dog");
var morse = Converter.ConvertTextToMorse("The quick brown fox jumps over the lazy dog");

Assert.Equal("_ .... . / __._ .._ .. _._. _._ / _... ._. ___ .__ _. / .._. ___ _.._ / .___ .._ __ .__. ... / ___ ..._ . ._. / _ .... . / ._.. ._ __.. _.__ / _.. ___ __. ",
morse);
}
[Fact]
public async void KurdishToMorse()
public void KurdishToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Kurdish);

var morse = await Converter.ConvertTextToMorse("کۆژین و ڤیان چوونە بۆ باغەکە ئاوی ساردیان دا بە خرینگ و عەگ و قوڵینگەکان ئینجا پەروازەکانیان فڕاند دواتریش هەموو حاجیلەکانیان چنی");
var morse = Converter.ConvertTextToMorse("کۆژین و ڤیان چوونە بۆ باغەکە ئاوی ساردیان دا بە خرینگ و عەگ و قوڵینگەکان ئینجا پەروازەکانیان فڕاند دواتریش هەموو حاجیلەکانیان چنی");

Assert.Equal("_.... ._._ __. .. _. / .__ / .._.. .. ._ _. / ___. .__ .__ _. . / _... ._._ / _... ._ ..__ . _.... . / .._.. ._ .__ .. / ... ._ _._ _.. .. ._ _. / _.. ._ / _... . / _.._ _._ .. _. __._ / .__ / ___ . __._ / .__ / ...___ .__ ..._ .. _. __._ . _.... ._ _. / .._.. .. _. .___ ._ / .__. . _._ .__ ._ __.. . _.... ._ _. .. ._ _. / .._. ._. ._ _. _.. / _.. .__ ._ _ _._ .. ____ / _._. . __ .__ .__ / .... ._ .___ .. ._.. . _.... ._ _. .. ._ _. / ___. _. .. ",
morse);
}
[Fact]
public async void KurdishLatinToMorse()
public void KurdishLatinToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.KurdishLatin);

var morse = await Converter.ConvertTextToMorse("Cem vî Fekoyê pîs zêdetir ji çar gulên xweşik hebûn");
var morse = Converter.ConvertTextToMorse("Cem vî Fekoyê pîs zêdetir ji çar gulên xweşik hebûn");

Assert.Equal(".___ . __ / .._.. .. / .._. . _.... ._._ ..__ .._ / .__. .. ... / __.. .._ _.. . _ .._.. _._ / __. .._.. / ___. ._ _._ / __._ .__ ._.. .._ _. / _.._ ___ . ____ .._.. _.... / _._. . _... .__.__ _. ",
morse);
}
[Fact]
public async void ArabicToMorse()
public void ArabicToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Arabic);

var morse = await Converter.ConvertTextToMorse("ابجد هوز حطي كلمن سعفص قرشت ثخذ ضظغ");
var morse = Converter.ConvertTextToMorse("ابجد هوز حطي كلمن سعفص قرشت ثخذ ضظغ");

Assert.Equal("._ _... .___ _.. / .._.. .__ ___. / .... .._ .. / _._ ._.. __ _. / ... ._._ .._. _.._ / __._ ._. ____ _ / _._. ___ __.. / ..._ _.__ __. ",
morse);
}
[Fact]
public async void DeutschToMorse()
public void DeutschToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Deutsch);

var morse = await Converter.ConvertTextToMorse("Victor jagt zwölf Boxkämpfer quer über den groẞen Sylter Deich");
var morse = Converter.ConvertTextToMorse("Victor jagt zwölf Boxkämpfer quer über den groẞen Sylter Deich");

Assert.Equal("..._ .. _._. _ ___ _._ / .___ ._ __. _ / __.. .__ ___. ._.. .._. / _... ___ _.._ _._ ._._ __ .__. .._. . _._ / __._ .._ . _._ / ..__ _... . _._ / _.. . _. / __. _._ ___ ...... . _. / ... _.__ ._.. _ . _._ / _.. . .. _._. .... ",
morse);
}

[Fact]
public async void EspanolToMorse()
public void EspanolToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Espanol);

var morse = await Converter.ConvertTextToMorse("El jefe buscó el éxtasis en un imprevisto baño de whisky y gozó como un duque");
var morse = Converter.ConvertTextToMorse("El jefe buscó el éxtasis en un imprevisto baño de whisky y gozó como un duque");

Assert.Equal(". ._.. / .___ . .._. . / _... .._ ... _._. ___. / . ._.. / .._.. _.._ _ ._ ... .. ... / . _. / .._ _. / .. __ .__. ._. . ..._ .. ... _ ___ / _... ._ __.__ ___ / _.. . / .__ .... .. ... _._ _.__ / _.__ / __. ___ __.. ___. / _._. ___ __ ___ / .._ _. / _.. .._ __._ .._ . ",
morse);
}
[Fact]
public async void FrancaisToMorse()
public void FrancaisToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Francais);

var morse = await Converter.ConvertTextToMorse("Portez ce vieux whisky au juge blond qui fume");
var morse = Converter.ConvertTextToMorse("Portez ce vieux whisky au juge blond qui fume");

Assert.Equal(".__. ___ ._. _ . __.. / _._. . / ..._ .. . .._ _.._ / .__ .... .. ... _._ _.__ / ._ .._ / .___ .._ __. . / _... ._.. ___ _. _.. / __._ .._ .. / .._. .._ __ . ",
morse);
}
[Fact]
public async void ItalianoToMorse()
public void ItalianoToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Italiano);

var morse = await Converter.ConvertTextToMorse("Pranzo d'acqua fa volti sghembi");
var morse = Converter.ConvertTextToMorse("Pranzo d'acqua fa volti sghembi");

Assert.Equal(".__. ._. ._ _. __.. ___ / _.. .____. ._ _._. __._ .._ ._ / .._. ._ / ..._ ___ ._.. _ .. / ... __. .... . __ _... .. ",
morse);
}
[Fact]
public async void JapaneseToMorse()
public void JapaneseToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Japanese);

var morse = await Converter.ConvertTextToMorse("アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン");
var morse = Converter.ConvertTextToMorse("アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン");

Assert.Equal("__.__ ._ .._ _.___ ._... ._.. _._.. ..._ _.__ ____ _._._ __._. ___._ .___. ___. _. .._. .__. ._.__ .._.. ._. _._. .... __._ ..__ _... __.._ __.. . _.. _.._ .._._ _ _..._ _.._. .__ _..__ __ ... __. _.__. ___ ._._ _._ .___ ._._. ",
morse);
}

[Fact]
public async void PortuguesToMorse()
public void PortuguesToMorse()
{
TextMorseConverter Converter = new TextMorseConverter(Language.Portugues);

var morse = await Converter.ConvertTextToMorse("Um pequeno jabuti xereta viu dez cegonhas felizes");
var morse = Converter.ConvertTextToMorse("Um pequeno jabuti xereta viu dez cegonhas felizes");

Assert.Equal(".._ __ / .__. . __._ .._ . _. ___ / .___ ._ _... .._ _ .. / _.._ . ._. . _ ._ / ..._ .. .._ / _.. . __.. / _._. . __. ___ _. .... ._ ... / .._. . ._.. .. __.. . ... ",
morse);
Expand Down
16 changes: 8 additions & 8 deletions MorseTest/TextMorseConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,43 +5,43 @@ namespace MorseTest
public class TextMorseConverterTest
{
[Fact]
public async void ConvertMorseWithValidString()
public void ConvertMorseWithValidString()
{
TextMorseConverter converter = new TextMorseConverter(Language.English);
var morse = await converter.ConvertTextToMorse("Hi There");
var morse = converter.ConvertTextToMorse("Hi There");
Assert.True(morse.Length > 0);
}

[Fact]
public void ConvertMorseWithNullString()
{
TextMorseConverter converter = new TextMorseConverter(Language.English);
Assert.ThrowsAsync<ArgumentNullException>(async () => await converter.ConvertTextToMorse(null));
Assert.Throws<ArgumentNullException>(() => converter.ConvertTextToMorse(null));
}
[Fact]
public void ConvertMorseWithInvalidCharacter()
{
var converter = new TextMorseConverter(Language.Kurdish);
Assert.ThrowsAsync<KeyNotFoundException>(async () => await converter.ConvertTextToMorse("Hi~"));
Assert.Throws<KeyNotFoundException>(() => converter.ConvertTextToMorse("Hi~"));
}
[Fact]
public async void ConvertTextWithValidMorse()
public void ConvertTextWithValidMorse()
{
TextMorseConverter converter = new TextMorseConverter(Language.Kurdish);
var morse = await converter.ConvertMorseToText("... ..._ ._ .__");
var morse = converter.ConvertMorseToText("... ..._ ._ .__");
Assert.True(morse.Length > 0);
}
[Fact]
public void ConvertTextWithNullMorse()
{
TextMorseConverter converter = new TextMorseConverter(Language.Kurdish);
Assert.ThrowsAsync<ArgumentNullException>(async () => await converter.ConvertMorseToText(null));
Assert.Throws<ArgumentNullException>(() => converter.ConvertMorseToText(null));
}
[Fact]
public void ConvertTextWithInvalidMorse()
{
TextMorseConverter converter = new TextMorseConverter(Language.Kurdish);
Assert.ThrowsAsync<ArgumentNullException>(async () => await converter.ConvertMorseToText("........"));
Assert.Throws<KeyNotFoundException>(() => converter.ConvertMorseToText("........"));
}


Expand Down

0 comments on commit ac410a0

Please sign in to comment.