[squeak-dev] The Trunk: KernelTests-dtl.158.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Aug 29 16:18:23 UTC 2010


David T. Lewis uploaded a new version of KernelTests to project The Trunk:
http://source.squeak.org/trunk/KernelTests-dtl.158.mcz

==================== Summary ====================

Name: KernelTests-dtl.158
Author: dtl
Time: 29 August 2010, 12:17:07.809 pm
UUID: 2fc02119-b982-4aef-a65c-0ce6e3ff8461
Ancestors: KernelTests-nice.157

Add DurationTest>>testNormalizeNanoSeconds to document a bug that affects DateAndTime subtraction.

=============== Diff against KernelTests-nice.157 ===============

Item was added:
+ ----- Method: DurationTest>>testNormalizeNanoSeconds (in category 'testing') -----
+ testNormalizeNanoSeconds
+ 	"Subtraction of two DateAndTime values may result in a request to
+ 	create a Duration with negative nanoseconds and positive seconds.
+ 	The resulting Duration should be normalized, otherwise its printString
+ 	will be invalid."
+ 
+ 	| d t1 t2 |
+ 	t1 := '2004-01-07T11:55:01+00:00' asDateAndTime. 
+ 	t2 := '2004-01-07T11:55:00.9+00:00' asDateAndTime.
+ 	d := t1 - t2. "100 millisecond difference"
+ 	self assert: d nanoSeconds > 0.
+ 	self assert: d seconds = 0.
+ 	self assert: d nanoSeconds = 100000000.
+ 	self assert: d asString = '0:00:00:00.1'.
+ 	"Verify that other combinations produces reasonable printString values"
+ 	self assert: (Duration seconds: 1 nanoSeconds: 100000000) printString = '0:00:00:01.1'.
+ 	self assert: (Duration seconds: -1 nanoSeconds: -100000000) printString = '-0:00:00:01.1'.
+ 	self assert: (Duration seconds: 1 nanoSeconds: -100000000) printString = '0:00:00:00.9'.
+ 	self assert: (Duration seconds: -1 nanoSeconds: 100000000) printString = '-0:00:00:00.9'
+ !




More information about the Squeak-dev mailing list