Updates emoji maps
This commit is contained in:
parent
3ed91d7310
commit
e0cbf8c84d
@ -18,6 +18,7 @@
|
||||
<ProjectReference Include="..\..\Framework\OverwatchTranscript\OverwatchTranscript.csproj" />
|
||||
<ProjectReference Include="..\..\Framework\Utils\Utils.csproj" />
|
||||
<ProjectReference Include="..\..\ProjectPlugins\CodexContractsPlugin\CodexContractsPlugin.csproj" />
|
||||
<ProjectReference Include="..\..\Tools\TestNetRewarder\TestNetRewarder.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
28
Tests/FrameworkTests/Utils/EmojiMapsTests.cs
Normal file
28
Tests/FrameworkTests/Utils/EmojiMapsTests.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using NUnit.Framework;
|
||||
using System.Text;
|
||||
using TestNetRewarder;
|
||||
|
||||
namespace FrameworkTests.Utils
|
||||
{
|
||||
[TestFixture]
|
||||
public class EmojiMapsTests
|
||||
{
|
||||
private readonly Random random = new Random();
|
||||
private readonly EmojiMaps maps = new EmojiMaps();
|
||||
|
||||
[Test]
|
||||
public void GeneratesConsistentStrings(
|
||||
[Values(1, 5, 10, 20)] int inputLength,
|
||||
[Values(1, 2, 3, 5)] int outLength)
|
||||
{
|
||||
var buffer = new byte[inputLength];
|
||||
random.NextBytes(buffer);
|
||||
var input = Encoding.ASCII.GetString(buffer);
|
||||
|
||||
var out1 = maps.StringToEmojis(input, outLength);
|
||||
var out2 = maps.StringToEmojis(input, outLength);
|
||||
|
||||
Assert.That(out1, Is.EqualTo(out2));
|
||||
}
|
||||
}
|
||||
}
|
@ -4,50 +4,80 @@ namespace TestNetRewarder
|
||||
{
|
||||
public class EmojiMaps
|
||||
{
|
||||
private readonly string[] create = new[]
|
||||
private readonly string[] emojis = new[]
|
||||
{
|
||||
// yellow
|
||||
"😀",
|
||||
"🌻",
|
||||
"🍋",
|
||||
"🧀",
|
||||
"🌔",
|
||||
"⭐",
|
||||
"⚡",
|
||||
"🏆",
|
||||
// red
|
||||
"💘",
|
||||
"🦞",
|
||||
"🌹",
|
||||
"🍒",
|
||||
"🫖", // teapot
|
||||
"⛩",
|
||||
"🚗",
|
||||
"🔥",
|
||||
// green
|
||||
"🐊",
|
||||
"🦎",
|
||||
"🐛",
|
||||
"🌳",
|
||||
"🍀",
|
||||
"🧩",
|
||||
"🔋",
|
||||
"♻",
|
||||
// blue
|
||||
"💙",
|
||||
"🐳",
|
||||
"🐟",
|
||||
"🔵",
|
||||
"🟦" // blue square
|
||||
};
|
||||
private readonly string[] positive = new[]
|
||||
{
|
||||
"🟢", // green circle
|
||||
"🟩" // green square
|
||||
};
|
||||
private readonly string[] surprise = new[]
|
||||
{
|
||||
"🧐",
|
||||
"🤨",
|
||||
"🟡", // yellow circle
|
||||
"🟨" // yellow square
|
||||
};
|
||||
private readonly string[] negative = new[]
|
||||
{
|
||||
"⛔",
|
||||
"🚫",
|
||||
"🔴",
|
||||
"🟥" // red square
|
||||
"🍉",
|
||||
"🧊",
|
||||
"🌐",
|
||||
"⚓",
|
||||
"🌀",
|
||||
};
|
||||
|
||||
public string GetCreate()
|
||||
public string NewRequest => "🐟";
|
||||
public string Started => "🦈";
|
||||
public string SlotFilled => "🟢";
|
||||
public string SlotFreed => "⭕";
|
||||
public string SlotReservationsFull => "☑️";
|
||||
public string Finished => "✅";
|
||||
public string Cancelled => "🚫";
|
||||
public string Failed => "❌";
|
||||
|
||||
public string StringToEmojis(string input, int outLength)
|
||||
{
|
||||
return RandomUtils.GetOneRandom(create);
|
||||
if (outLength < 1) outLength = 1;
|
||||
|
||||
var result = "";
|
||||
var segmentLength = input.Length / outLength;
|
||||
if (segmentLength < 1)
|
||||
{
|
||||
return StringToEmojis(input + input, outLength);
|
||||
}
|
||||
for (var i = 0; i < outLength; i++)
|
||||
{
|
||||
var segment = input.Substring(i * segmentLength, segmentLength);
|
||||
result += SelectOne(segment);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public string GetPositive()
|
||||
private string SelectOne(string segment)
|
||||
{
|
||||
return RandomUtils.GetOneRandom(positive);
|
||||
}
|
||||
|
||||
public string GetSurprise()
|
||||
{
|
||||
return RandomUtils.GetOneRandom(surprise);
|
||||
}
|
||||
|
||||
public string GetNegative()
|
||||
{
|
||||
return RandomUtils.GetOneRandom(negative);
|
||||
var index = 0;
|
||||
foreach (var c in segment) index += Convert.ToInt32(c);
|
||||
index = index % emojis.Length;
|
||||
return emojis[index];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ namespace TestNetRewarder
|
||||
public void OnNewRequest(RequestEvent requestEvent)
|
||||
{
|
||||
var request = requestEvent.Request;
|
||||
AddRequestBlock(requestEvent, $"{C} New Request",
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.NewRequest} New Request",
|
||||
$"Client: {request.Client}",
|
||||
$"Content: {request.Request.Content.Cid}",
|
||||
$"Duration: {BigIntToDuration(request.Request.Ask.Duration)}",
|
||||
@ -43,27 +43,27 @@ namespace TestNetRewarder
|
||||
|
||||
public void OnRequestCancelled(RequestEvent requestEvent)
|
||||
{
|
||||
AddRequestBlock(requestEvent, $"{N} Cancelled");
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.Cancelled} Cancelled");
|
||||
}
|
||||
|
||||
public void OnRequestFailed(RequestEvent requestEvent)
|
||||
{
|
||||
AddRequestBlock(requestEvent, $"{N} Failed");
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.Failed} Failed");
|
||||
}
|
||||
|
||||
public void OnRequestFinished(RequestEvent requestEvent)
|
||||
{
|
||||
AddRequestBlock(requestEvent, $"{P} Finished");
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.Finished} Finished");
|
||||
}
|
||||
|
||||
public void OnRequestFulfilled(RequestEvent requestEvent)
|
||||
{
|
||||
AddRequestBlock(requestEvent, $"{P} Started");
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.Started} Started");
|
||||
}
|
||||
|
||||
public void OnSlotFilled(RequestEvent requestEvent, EthAddress host, BigInteger slotIndex)
|
||||
{
|
||||
AddRequestBlock(requestEvent, $"{P} Slot Filled",
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.SlotFilled} Slot Filled",
|
||||
$"Host: {host}",
|
||||
$"Slot Index: {slotIndex}"
|
||||
);
|
||||
@ -71,14 +71,14 @@ namespace TestNetRewarder
|
||||
|
||||
public void OnSlotFreed(RequestEvent requestEvent, BigInteger slotIndex)
|
||||
{
|
||||
AddRequestBlock(requestEvent, $"{S} Slot Freed",
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.SlotFreed} Slot Freed",
|
||||
$"Slot Index: {slotIndex}"
|
||||
);
|
||||
}
|
||||
|
||||
public void OnSlotReservationsFull(RequestEvent requestEvent, BigInteger slotIndex)
|
||||
{
|
||||
AddRequestBlock(requestEvent, $"{P} Slot Reservations Full",
|
||||
AddRequestBlock(requestEvent, $"{emojiMaps.SlotReservationsFull} Slot Reservations Full",
|
||||
$"Slot Index: {slotIndex}"
|
||||
);
|
||||
}
|
||||
@ -86,7 +86,7 @@ namespace TestNetRewarder
|
||||
private void AddRequestBlock(RequestEvent requestEvent, string eventName, params string[] content)
|
||||
{
|
||||
var blockNumber = $"[{requestEvent.Block.BlockNumber} {FormatDateTime(requestEvent.Block.Utc)}]";
|
||||
var title = $"{blockNumber} **{eventName}** `{requestEvent.Request.Request.Id}`";
|
||||
var title = $"{blockNumber} **{eventName}** {FormatRequestId(requestEvent)}";
|
||||
AddBlock(title, content);
|
||||
}
|
||||
|
||||
@ -121,6 +121,13 @@ namespace TestNetRewarder
|
||||
return utc.ToString("yyyy-MM-dd HH:mm:ss UTC", CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
private string FormatRequestId(RequestEvent requestEvent)
|
||||
{
|
||||
return
|
||||
$"({emojiMaps.StringToEmojis(requestEvent.Request.Request.Id, 3)})" +
|
||||
$"`{requestEvent.Request.Request.Id}`";
|
||||
}
|
||||
|
||||
private string BigIntToDuration(BigInteger big)
|
||||
{
|
||||
var span = TimeSpan.FromSeconds((int)big);
|
||||
@ -138,10 +145,5 @@ namespace TestNetRewarder
|
||||
var tt = new TestToken(big);
|
||||
return tt.ToString();
|
||||
}
|
||||
|
||||
private string C => emojiMaps.GetCreate();
|
||||
private string P => emojiMaps.GetPositive();
|
||||
private string S => emojiMaps.GetSurprise();
|
||||
private string N => emojiMaps.GetNegative();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user