From 72ee98fdfd3dba299c883bd79de78c3e8fa136de Mon Sep 17 00:00:00 2001 From: joerivanarkel Date: Sun, 3 Sep 2023 00:34:51 +0200 Subject: [PATCH] PIRATE-47 WIP --- .../Pirate.Lexer.F.Test.fsproj | 34 +++++++++++++++++++ Pirate.Lexer.F.Test/Tests.fs | 8 +++++ Pirate.Lexer.F.Test/TokenRepositoryTest.fs | 31 +++++++++++++++++ Pirate.Lexer.F.Test/TokenTest.fs | 15 ++++++++ 4 files changed, 88 insertions(+) create mode 100644 Pirate.Lexer.F.Test/Pirate.Lexer.F.Test.fsproj create mode 100644 Pirate.Lexer.F.Test/Tests.fs create mode 100644 Pirate.Lexer.F.Test/TokenRepositoryTest.fs create mode 100644 Pirate.Lexer.F.Test/TokenTest.fs diff --git a/Pirate.Lexer.F.Test/Pirate.Lexer.F.Test.fsproj b/Pirate.Lexer.F.Test/Pirate.Lexer.F.Test.fsproj new file mode 100644 index 0000000..4e84c9a --- /dev/null +++ b/Pirate.Lexer.F.Test/Pirate.Lexer.F.Test.fsproj @@ -0,0 +1,34 @@ + + + + net6.0 + + false + false + + + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/Pirate.Lexer.F.Test/Tests.fs b/Pirate.Lexer.F.Test/Tests.fs new file mode 100644 index 0000000..f130521 --- /dev/null +++ b/Pirate.Lexer.F.Test/Tests.fs @@ -0,0 +1,8 @@ +module Tests + +open System +open Xunit + +[] +let ``My test`` () = + Assert.True(true) \ No newline at end of file diff --git a/Pirate.Lexer.F.Test/TokenRepositoryTest.fs b/Pirate.Lexer.F.Test/TokenRepositoryTest.fs new file mode 100644 index 0000000..6574a1a --- /dev/null +++ b/Pirate.Lexer.F.Test/TokenRepositoryTest.fs @@ -0,0 +1,31 @@ +module Pirate.Lexer.F.Test.TokenRepositoryTest + +open Xunit +open Pirate.Lexer.F +open Pirate.Lexer.F.Tokens.Enums + +[] +let ShouldMakeNumber () = + let tokenRepository = new TokenRepository(new KeyWordService()) + let text = "123" + let position = 0 + + let result = tokenRepository.MakeNumber(text, position) + + Assert.Equal(3, result.Position) + Assert.Equal(VALUE, result.Token.TokenGroup); + Assert.Equal(INT, result.Token.TokenType); + Assert.Equal(123, result.Token.Value |> unbox) + +[] +let ShouldMakeFloat () = + let tokenRepository = new TokenRepository(new KeyWordService()) + let text = "123.456" + let position = 0 + + let result = tokenRepository.MakeNumber(text, position) + + Assert.Equal(7, result.Position) + Assert.Equal(VALUE, result.Token.TokenGroup) + Assert.Equal(FLOAT, result.Token.TokenType) + Assert.Equal(123.456, result.Token.Value |> unbox) \ No newline at end of file diff --git a/Pirate.Lexer.F.Test/TokenTest.fs b/Pirate.Lexer.F.Test/TokenTest.fs new file mode 100644 index 0000000..6a4ed48 --- /dev/null +++ b/Pirate.Lexer.F.Test/TokenTest.fs @@ -0,0 +1,15 @@ +module Pirate.Lexer.F.Test.TokenTest + +open Xunit +open Pirate.Lexer.F.Tokens +open Pirate.Lexer.F.Tokens.Enums + +[] +let ShouldMatchToken () = + Token(VALUE, INT, 123).Matches(TokenType.INT, 123) |> Assert.True + +[] +let ShouldNotMatchToken () = + Token(VALUE, INT, 123).Matches(TokenType.INT, 456) |> Assert.False + +