Skip to content

Commit

Permalink
Add message pagination
Browse files Browse the repository at this point in the history
  • Loading branch information
ButterscotchV committed Jan 31, 2024
1 parent 5a259cd commit 78cb0e0
Show file tree
Hide file tree
Showing 6 changed files with 254 additions and 57 deletions.
99 changes: 75 additions & 24 deletions ButterSTT.Tests/MessageSystem/MessageQueueTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ public MessageQueueTests(ITestOutputHelper output)
}

[Fact()]
public void TimeoutTest()
public void ScrollTimeoutTest()
{
var queue = new MessageQueue
{
DequeueSystem = DequeueSystems.Scrolling,
MaxWordsDequeued = int.MaxValue,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.Zero
Expand All @@ -39,35 +40,40 @@ public void TimeoutTest()
}

[Fact()]
public void CombineTest()
public void ScrollMaxDequeueTest()
{
var queue = new MessageQueue
{
MaxWordsDequeued = int.MaxValue,
DequeueSystem = DequeueSystems.Scrolling,
MaxWordsDequeued = 2,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.Zero
HardWordTime = TimeSpan.MaxValue
};

var firstMessage = "Testing the queue system.";
queue.CurParagraph = EnglishTextParser.ParseParagraph(firstMessage);
queue.FinishCurrentParagraph();
var curMessage = queue.GetCurrentMessage();
_output.WriteLine($"First message: \"{curMessage}\"");
Assert.Equal(firstMessage, curMessage);

var secondMessage = "Second test message.";
queue.CurParagraph = EnglishTextParser.ParseParagraph(secondMessage);
queue.FinishCurrentParagraph();

var curMessage = queue.GetCurrentMessage();
_output.WriteLine($"Combined message: \"{curMessage}\"");
Assert.Equal($"{firstMessage} {secondMessage}", curMessage);
curMessage = queue.GetCurrentMessage();
_output.WriteLine($"Second message: \"{curMessage}\"");
Assert.Equal($"queue system. {secondMessage}", curMessage);
}

[Fact()]
public void MaxDequeueTest()
public void ScrollHardWordTest()
{
var queue = new MessageQueue
{
DequeueSystem = DequeueSystems.Scrolling,
MaxWordsDequeued = 2,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.MaxValue
HardWordTime = TimeSpan.Zero
};

var firstMessage = "Testing the queue system.";
Expand All @@ -82,17 +88,18 @@ public void MaxDequeueTest()
queue.FinishCurrentParagraph();
curMessage = queue.GetCurrentMessage();
_output.WriteLine($"Second message: \"{curMessage}\"");
Assert.Equal($"queue system. {secondMessage}", curMessage);
Assert.Equal(secondMessage, curMessage);
}

[Fact()]
public void HardWordTest()
public void PageDequeueTest()
{
var queue = new MessageQueue
{
MaxWordsDequeued = 2,
MessageLength = 47,
DequeueSystem = DequeueSystems.Pagination,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.Zero
HardWordTime = TimeSpan.MaxValue
};

var firstMessage = "Testing the queue system.";
Expand All @@ -106,15 +113,50 @@ public void HardWordTest()
queue.CurParagraph = EnglishTextParser.ParseParagraph(secondMessage);
queue.FinishCurrentParagraph();
curMessage = queue.GetCurrentMessage();
_output.WriteLine($"Second message: \"{curMessage}\"");
Assert.Equal(secondMessage, curMessage);
_output.WriteLine($"Both messages: \"{curMessage}\"");
Assert.Equal($"{firstMessage} {secondMessage}", curMessage);

var thirdMessage = "Testing a third time.";
queue.CurParagraph = EnglishTextParser.ParseParagraph(thirdMessage);
queue.FinishCurrentParagraph();
curMessage = queue.GetCurrentMessage();
_output.WriteLine($"Third messages: \"{curMessage}\"");
Assert.Equal($"message. {thirdMessage}", curMessage);
}

[Fact()]
public void RealtimeTest()
[Theory()]
[InlineData(DequeueSystems.Scrolling)]
[InlineData(DequeueSystems.Pagination)]
public void CombineTest(DequeueSystems dequeueSystem)
{
var queue = new MessageQueue
{
DequeueSystem = dequeueSystem,
MaxWordsDequeued = int.MaxValue,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.Zero
};

var firstMessage = "Testing the queue system.";
queue.CurParagraph = EnglishTextParser.ParseParagraph(firstMessage);
queue.FinishCurrentParagraph();
var secondMessage = "Second test message.";
queue.CurParagraph = EnglishTextParser.ParseParagraph(secondMessage);
queue.FinishCurrentParagraph();

var curMessage = queue.GetCurrentMessage();
_output.WriteLine($"Combined message: \"{curMessage}\"");
Assert.Equal($"{firstMessage} {secondMessage}", curMessage);
}

[Theory()]
[InlineData(DequeueSystems.Scrolling)]
[InlineData(DequeueSystems.Pagination)]
public void RealtimeTest(DequeueSystems dequeueSystem)
{
var queue = new MessageQueue
{
DequeueSystem = dequeueSystem,
MaxWordsDequeued = int.MaxValue,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.Zero
Expand Down Expand Up @@ -148,11 +190,14 @@ public void RealtimeTest()
Assert.Equal(fourthMessage, curMessage);
}

[Fact()]
public void RealtimeAppendingTest()
[Theory()]
[InlineData(DequeueSystems.Scrolling)]
[InlineData(DequeueSystems.Pagination)]
public void RealtimeAppendingTest(DequeueSystems dequeueSystem)
{
var queue = new MessageQueue
{
DequeueSystem = dequeueSystem,
MaxWordsDequeued = 0,
WordTime = TimeSpan.MaxValue,
HardWordTime = TimeSpan.MaxValue
Expand All @@ -178,12 +223,15 @@ public void RealtimeAppendingTest()
Assert.Equal($"{firstMessage} {thirdMessage}", curMessage);
}

[Fact()]
public void RealtimeAppendingTooLongTest()
[Theory()]
[InlineData(DequeueSystems.Scrolling)]
[InlineData(DequeueSystems.Pagination)]
public void RealtimeAppendingTooLongTest(DequeueSystems dequeueSystem)
{
var queue = new MessageQueue
{
MessageLength = 33,
DequeueSystem = dequeueSystem,
MaxWordsDequeued = int.MaxValue,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.Zero
Expand All @@ -202,12 +250,15 @@ public void RealtimeAppendingTooLongTest()
Assert.Equal($"{firstMessage} Second-", curMessage);
}

[Fact()]
public void RealtimeTooLongTest()
[Theory()]
[InlineData(DequeueSystems.Scrolling)]
[InlineData(DequeueSystems.Pagination)]
public void RealtimeTooLongTest(DequeueSystems dequeueSystem)
{
var queue = new MessageQueue
{
MessageLength = 18,
DequeueSystem = dequeueSystem,
MaxWordsDequeued = int.MaxValue,
WordTime = TimeSpan.Zero,
HardWordTime = TimeSpan.Zero
Expand Down
3 changes: 3 additions & 0 deletions ButterSTT/Config/STTConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ public record STTConfig
[JsonPropertyName("hard_word_time_s")]
public double HardWordTimeS { get; set; } = 16.0;

[JsonPropertyName("page_context")]
public int PageContext { get; set; } = 1;

// Converter utilities
private static TimeSpan Seconds(double s) =>
s < 0d ? TimeSpan.MaxValue : TimeSpan.FromSeconds(s);
Expand Down
Loading

0 comments on commit 78cb0e0

Please sign in to comment.