第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

xUnit 斷言兩個值相等且具有一定的容差

xUnit 斷言兩個值相等且具有一定的容差

C#
吃雞游戲 2023-08-20 09:34:26
我正在嘗試比較兩個數(shù)字的精度和一定的容差。這是在 nUnit 中檢查它的方式:Assert.That(turnOver, Is.EqualTo(turnoverExpected).Within(0.00001).Percent);我試圖在 xUnit 中做同樣的事情,但這就是我想出的全部:double tolerance = 0.00001; Assert.Equal(turnOver, turnoverExpected, tolerance);這不會編譯,因為Assert.Equal不接受類型為 的第三個參數(shù)double。有人知道在 xUnit 中執(zhí)行此操作的好方法嗎?
查看完整描述

4 回答

?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

您可能稍微誤解了方法中的最后一個參數(shù)(精度)Assert.Equal(expected, actual, precision)。

 /// <param name="precision">The number of decimal places (valid values: 0-15)</param>

因此,舉例來說,如果您想要比較0.00021并且0.00022您只想比較小數(shù)點后 4 位,您可以這樣做(它將返回true):

Assert.Equal(0.00021, 0.00022, 4); // true

這將返回false

Assert.Equal(0.00021, 0.00022, 5); // false


查看完整回答
反對 回復 2023-08-20
?
倚天杖

TA貢獻1828條經(jīng)驗 獲得超3個贊

您可以使用FluentAssertions

float?value?=?3.1415927F;
value.Should().BeApproximately(3.14F,?0.01F);


查看完整回答
反對 回復 2023-08-20
?
蝴蝶刀刀

TA貢獻1801條經(jīng)驗 獲得超8個贊

您可以Assert.InRange()在簽名所在的位置使用 ,

public static void InRange<T>(T actual, T low, T high) where T : IComparable


查看完整回答
反對 回復 2023-08-20
?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

我將一些測試從 MS Test V1 移植到 xUnit,并注意到Assert帶有 Delta 的測試與 xUnit 中的測試不同。


為了解決這個問題,我反編譯了 MS Test 中的版本并制作了我自己的版本:


internal static class DoubleAssertion

{

    const Double delta = 0.00001;


    public static void Equal(Double expected, Double actual, String message = null)

    {

        if (Math.Abs(expected - actual) > delta)

        {

            var deltaMessage = $"Expected a difference no greater than <{delta.ToString(CultureInfo.CurrentCulture.NumberFormat)}>";


            if (!String.IsNullOrWhiteSpace(message))

                message = message + Environment.NewLine + deltaMessage;

            else

                message = deltaMessage;


            throw new DoubleException(

                expected: expected.ToString(CultureInfo.CurrentCulture.NumberFormat),

                actual: actual.ToString(CultureInfo.CurrentCulture.NumberFormat),

                message: message);

        }

    }

}


public class DoubleException : AssertActualExpectedException

{

    public DoubleException(

        String expected,

        String actual,

        String message)

        : base(expected, actual, message)

    {

    }

}


查看完整回答
反對 回復 2023-08-20
  • 4 回答
  • 0 關注
  • 242 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號