10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
161425
170
181425
190
201545
2160
220
230
241425
2546
260
270
281425
291374
300
310
3251
330
3451
3547
3647
370
3847
3919
400
4128
420
430
4447
4547
460
4747
480
490
50102
510
5251
530
module fluentasserts.core.operations.equal;
import fluentasserts.core.results;
import fluentasserts.core.evaluation;
import fluentasserts.core.lifecycle;
version(unittest) {
import fluentasserts.core.expect;
}
static immutable equalDescription = "Asserts that the target is strictly == equal to the given val.";
///
IResult[] equal(ref Evaluation evaluation) @safe nothrow {
evaluation.message.addText(".");
bool result = evaluation.currentValue.strValue == evaluation.expectedValue.strValue;
if(!result && evaluation.currentValue.proxyValue !is null && evaluation.expectedValue.proxyValue !is null) {
result = evaluation.currentValue.proxyValue.isEqualTo(evaluation.expectedValue.proxyValue);
}
if(evaluation.isNegated) {
result = !result;
}
if(result) {
return [];
}
IResult[] results = [];
if(evaluation.currentValue.typeName != "bool") {
evaluation.message.addText(" ");
evaluation.message.addValue(evaluation.currentValue.strValue);
if(evaluation.isNegated) {
evaluation.message.addText(" is equal to ");
} else {
evaluation.message.addText(" is not equal to ");
}
evaluation.message.addValue(evaluation.expectedValue.strValue);
evaluation.message.addText(".");
try results ~= new DiffResult(evaluation.expectedValue.strValue, evaluation.currentValue.strValue); catch(Exception) {}
}
try results ~= new ExpectedActualResult((evaluation.isNegated ? "not " : "") ~ evaluation.expectedValue.strValue, evaluation.currentValue.strValue); catch(Exception) {}
return results;
}