feat(ads/seo/release): v1.2.0 with live Google Ads, isolated ad profile, ads.txt, and SEO/AEO/GEO optimization

This commit is contained in:
Yun Chan 2026-09-14 00:39:44 +09:00
parent a88aafa1e5
commit 0e568f1f0a
975 changed files with 130593 additions and 16783 deletions

View file

@ -0,0 +1,62 @@
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);
}
}