Nicolas,<div><br></div><div> I would duplicate this test, testing both the actual objects and the result of SqNumberParser generating them, e.g.</div><div><br></div><div>testSign</div><div> self runTestSignOfZero: 0.0 negativeZero: Float negativeZero.</div>
self runTestSignOfZero: (SqNumberParser parse: '0.0') negativeZero: (SqNumberParser parse: '-0.0')<div><br></div><div>runTestSignOfZero: zero negativeZero: negz</div><div> ....<br><br><div class="gmail_quote">
On Tue, Sep 21, 2010 at 3:02 PM, <span dir="ltr"><<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Nicolas Cellier uploaded a new version of KernelTests to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/KernelTests-nice.164.mcz" target="_blank">http://source.squeak.org/trunk/KernelTests-nice.164.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: KernelTests-nice.164<br>
Author: nice<br>
Time: 22 September 2010, 12:02:13.329 am<br>
UUID: 432cb71f-bfd7-4637-a4c4-1232904319e1<br>
Ancestors: KernelTests-nice.163<br>
<br>
Add tests for #sign and #sign: (which means #copySignOf: )<br>
As usual, the case of Float negativeZero is more than tricky...<br>
<br>
=============== Diff against KernelTests-nice.163 ===============<br>
<br>
Item was added:<br>
+ ----- Method: FloatTest>>testSign (in category 'testing') -----<br>
+ testSign<br>
+<br>
+ "Set up"<br>
+ | negatives negz positives strictNegatives strictPositives zero |<br>
+ strictPositives := {2. 2.5. Float infinity}.<br>
+ strictNegatives := {-3. -3.25. Float infinity negated}.<br>
+ zero := 0.0.<br>
+ negz := Float negativeZero.<br>
+ positives := strictPositives copyWith: zero.<br>
+ negatives := strictNegatives copyWith: negz.<br>
+<br>
+ "The sign of non zeros"<br>
+ strictPositives do: [:aPositive | self assert: aPositive sign = 1].<br>
+ strictNegatives do: [:aNegative | self assert: aNegative sign = -1].<br>
+<br>
+ "The sign of zeros"<br>
+ self assert: zero sign = 0.<br>
+ self assert: negz sign = -1. "remark though that negz >= 0.0, and is thus considered positive... Weird"<br>
+<br>
+ "Test the copy sign functions"<br>
+ positives do: [:aPositiveSign |<br>
+ positives do: [:aPositive |<br>
+ self assert: (aPositive sign: aPositiveSign) = aPositive].<br>
+ negatives do: [:aNegative |<br>
+ self assert: (aNegative sign: aPositiveSign) = aNegative negated].<br>
+ (0.0 sign: aPositiveSign) sign = 0.<br>
+ (negz sign: aPositiveSign) sign = 0].<br>
+<br>
+ negatives do: [:aNegativeSign |<br>
+ positives do: [:aPositive |<br>
+ self assert: (aPositive sign: aNegativeSign) = aPositive negated].<br>
+ negatives do: [:aNegative |<br>
+ self assert: (aNegative sign: aNegativeSign) = aNegative].<br>
+ (negz sign: aNegativeSign) sign = -1.<br>
+ (negz sign: aNegativeSign) sign = -1].!<br>
<br>
<br>
</blockquote></div><br></div>