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); } }