#-- # $Id: tc_tuple.rb 7 2006-09-06 17:03:26Z prelude $ # # # This file is part of the Prelude library that provides tools to # enable Haskell style functional programming in Ruby. # # http://prelude.rubyforge.org # # Copyright (C) 2006 APP Design, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #++ class TestTuple < Test::Unit::TestCase def setup # Nothing end # setup def teardown # Nothing end # teardown def test_tuple result = Tuple.new() expect = [nil, nil] assert_equal(expect, result) result = Tuple.new(1) expect = [1, nil] assert_equal(expect, result) result = Tuple.new(1, 2) expect = [1, 2] assert_equal(expect, result) result = Tuple.new(1, 2, 3) expect = [1, [2, 3]] assert_equal(expect, result) result = Tuple.new([1, 2]) expect = [1, [2]] assert_equal(expect, result) result = Tuple.new([1, 2, 3, 4, 5]) expect = [1, [2, 3, 4, 5]] assert_equal(expect, result) end def test_fst result = Tuple.new(1, 2, 3).fst expect = 1 assert_equal(expect, result) end def test_snd result = Tuple.new(1, 2, 3).snd expect = [2, 3] assert_equal(expect, result) end end # TestTuple