62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
using System;
|
|
using Paca.Core.QuickActions;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.App;
|
|
|
|
public class QuickActionInlineEvaluatorGateTests
|
|
{
|
|
private readonly QuickActionInlineEvaluator _evaluator = new();
|
|
|
|
[Theory]
|
|
[InlineData("12 + 34", "46")]
|
|
[InlineData("100 * 5", "500")]
|
|
[InlineData("2 ^ 10", "1024")]
|
|
[InlineData("sqrt(144)", "12")]
|
|
[InlineData("= 25 * 4", "100")]
|
|
[InlineData("1000 - 350", "650")]
|
|
[InlineData("10 / 4", "2.5")]
|
|
public void Gate_QuickActionEvaluator_MathExpressions_CalculatesCorrectly(string input, string expectedResult)
|
|
{
|
|
bool evaluated = _evaluator.TryEvaluate(input, out var result);
|
|
Assert.True(evaluated, $"수식 '{input}'이 정상적으로 평가되어야 합니다.");
|
|
Assert.NotNull(result);
|
|
Assert.Equal(expectedResult, result.Value);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate_QuickActionEvaluator_DevConversions_Base64AndHexAndTimestamp()
|
|
{
|
|
// 1. Base64 encode / decode
|
|
bool b64Enc = _evaluator.TryEvaluate("b64 PACA Super App", out var resEnc);
|
|
Assert.True(b64Enc);
|
|
Assert.Equal("UEFDQSBTdXBlciBBcHA=", resEnc!.Value);
|
|
|
|
bool b64Dec = _evaluator.TryEvaluate("b64d UEFDQSBTdXBlciBBcHA=", out var resDec);
|
|
Assert.True(b64Dec);
|
|
Assert.Equal("PACA Super App", resDec!.Value);
|
|
|
|
// 2. Hex to RGB
|
|
bool hexRgb = _evaluator.TryEvaluate("hex #3b82f6", out var resRgb);
|
|
Assert.True(hexRgb);
|
|
Assert.Equal("rgb(59, 130, 246)", resRgb!.Value);
|
|
|
|
// 3. Timestamp now
|
|
bool ts = _evaluator.TryEvaluate("time now", out var resTs);
|
|
Assert.True(ts);
|
|
Assert.True(long.TryParse(resTs!.Value, out var val) && val > 1700000000);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("10 km to mile", "6.21")]
|
|
[InlineData("100 kg to lb", "220.46")]
|
|
[InlineData("30 c to f", "86")]
|
|
[InlineData("1024 mb to gb", "1")]
|
|
public void Gate_QuickActionEvaluator_UnitConversions(string input, string expectedValuePrefix)
|
|
{
|
|
bool evaluated = _evaluator.TryEvaluate(input, out var result);
|
|
Assert.True(evaluated, $"단위 변환 '{input}'이 평가되어야 합니다.");
|
|
Assert.NotNull(result);
|
|
Assert.StartsWith(expectedValuePrefix, result.Value);
|
|
}
|
|
}
|