-USING: arrays assocs named-tuples sequences tools.test ;
+USING: arrays assocs math named-tuples sequences tools.test ;
IN: named-tuples.tests
TUPLE: foo x y z ;
{ 1 } [ T{ foo f 1 2 3 } "x" of ] unit-test
{ 2 } [ T{ foo f 1 2 3 } "y" of ] unit-test
{ 3 } [ T{ foo f 1 2 3 } "z" of ] unit-test
+
+{ 1 } [ 0 >bignum T{ foo f 1 2 3 } nth ] unit-test
+{ 2 } [ 1 >bignum T{ foo f 1 2 3 } nth ] unit-test
+{ 3 } [ 2 >bignum T{ foo f 1 2 3 } nth ] unit-test
! See http://factorcode.org/license.txt for BSD license
USING: accessors assocs classes classes.tuple
-classes.tuple.private kernel sequences sequences.private
+classes.tuple.private kernel math sequences sequences.private
slots.private ;
IN: named-tuples
M: named-tuple length tuple-size ;
-M: named-tuple nth-unsafe array-nth ;
+M: named-tuple nth-unsafe
+ [ integer>fixnum ] dip array-nth ;
-M: named-tuple set-nth-unsafe set-array-nth ;
+M: named-tuple set-nth-unsafe
+ [ integer>fixnum ] dip set-array-nth ;
M: named-tuple like class-of slots>tuple ;