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,49 @@
using System;
using System.IO;
using Paca.Browser;
using Paca.Tests.Infrastructure;
using Xunit;
namespace Paca.Tests.Browser;
public class ChromeParityMilestone16Tests
{
[Theory]
[InlineData("12 + 34", 46, "12 + 34 = 46")]
[InlineData("100 - 35", 65, "100 - 35 = 65")]
[InlineData("25 * 4", 100, "25 * 4 = 100")]
[InlineData("144 / 12", 12, "144 / 12 = 12")]
[InlineData("2 ^ 8", 256, "2 ^ 8 = 256")]
[InlineData("(10 + 2) * 5", 60, "(10 + 2) * 5 = 60")]
[InlineData("10.5 + 4.5", 15, "10.5 + 4.5 = 15")]
public void TryEvaluate_사칙연산_성공(string input, double expectedVal, string expectedFmt)
{
var ok = OmniboxMathEvaluator.TryEvaluate(input, out var res, out var fmt);
Assert.True(ok);
Assert.Equal(expectedVal, res);
Assert.Equal(expectedFmt, fmt);
}
[Theory]
[InlineData("https://google.com")]
[InlineData("hello world")]
[InlineData("42")]
[InlineData("12 +")]
[InlineData("10 / 0")]
[InlineData("")]
public void TryEvaluate_일반문자열_또는_오류수식_false_반환(string input)
{
var ok = OmniboxMathEvaluator.TryEvaluate(input, out _, out _);
Assert.False(ok);
}
[Fact]
public void MainWindow_UpdateSuggestions_계산기_통합_검증()
{
var csPath = SourceTree.AppPath("MainWindow.xaml.cs");
Assert.True(File.Exists(csPath), "MainWindow.xaml.cs 파일이 존재해야 합니다.");
var code = File.ReadAllText(csPath);
Assert.Contains("OmniboxMathEvaluator", code);
}
}