如何在 fitsharp 中使用可选的单元运算符

How use optional cell operators in fitsharp

FitSharp 支持可选的单元运算符

这个具体怎么用? http://fitsharp.github.io/Fit/CompareFloatingPoint.html

我已阅读此页底部 http://fitsharp.github.io/Fit/CellOperators.html

我已经尝试将 Processor.AddOperator("fitSharp.Fit.Operators.CompareFloatingPoint"); 放入我的测试方法中。

public class Division
{
    public double Numerator { get; set; }
    public double Denominator { get; set; }

    public double Quotient()
    {
        Processor.AddOperator("fitSharp.Fit.Operators.CompareFloatingPoint");
        return Numerator / Denominator;
    }
}

我试过套件配置文件

<suiteConfig>
    <Fit.Operators>
        <Add>fitSharp.Fit.Operators.CompareFloatingPoint</Add>
    </Fit.Operators>
</suiteConfig>

像这样包含在 Fitnesse 标记中 !define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer -c C:\fit\tests\SuiteConfig.xml %p}

测试输出目前看起来像这样

.fail, span.fail * {
    background-color: #FFAAAA;
}
.pass, span.pass * {
    background-color: #c1e2b3;
    color: #081109;
}
table {
    width: 100%;
    margin-bottom: 20px;
    border: 1px solid #dddddd;
    width: auto;
}
table > thead > tr > th, table > tbody > tr > th, table > tfoot > tr > th, table > thead > tr > td, table > tbody > tr > td, table > tfoot > tr > td {
    border: 1px solid #dddddd;
}
table > thead > tr > th, table > tbody > tr > th, table > tfoot > tr > th, table > thead > tr > td, table > tbody > tr > td, table > tfoot > tr > td {
    padding: 5px;
}
<table>
 <tbody><tr>
  <td colspan="3"><span class="fit_interpreter">tests.Division</span></td>
 </tr>
 <tr>
  <td><span class="fit_member">numerator</span></td>
  <td><span class="fit_member">denominator</span></td>
  <td><span class="fit_member">quotient?</span></td>
 </tr>
 <tr>
  <td>10</td>
  <td>2</td>
  <td class="pass">5</td>
 </tr>
 <tr>
  <td>12.6</td>
  <td>3</td>
  <td class="pass">4.2</td>
 </tr>
 <tr>
  <td>100</td>
  <td>4</td>
  <td class="pass">25</td>
 </tr>
 <tr>
  <td>22</td>
  <td>7</td>
  <td class="fail">3.14 <span class="fit_label">expected</span><hr>3.14285714285714 <span class="fit_label">actual</span></td>
 </tr>
</tbody></table>

已正确加载单元格运算符,问题是单元格运算符没有按照您希望的方式执行。 CompareFloatingPoint 运算符不使用预期值的精度 (3.14),它使用实际值的字符串表示形式的精度 (3.14285714285714)。正如您评论的那样,fitSharp 不支持 ~= 运算符,您可以在两行上使用 >= 3.14 和 < 3.15,但不太好!