VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/lib/gems/2.5.0/gems/tins-1.28.0/tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/lib/gems/2.5.0/gems/tins-1.28.0/tests/proc_prelude_test.rb
require 'test_helper'
require 'tins/xt/proc_prelude'

module Tins
  class ProcPreludeTest < Test::Unit::TestCase
    def test_apply
      assert_equal 42,
        Proc.apply { |x, y, z|  x ** 2 + y ** 3 + z ** 5 }.call([3, 1, 2])
    end

    class Person
      def initialize(name)
        @name = name
      end

      attr_reader :name
    end

    def test_map_apply
      ps = %w[anne bernd christian].map { |n| Person.new(n) }

      i = 0
      assert_equal %w[ anne1 bernd2 christian3 ],
        ps.inject([], &Proc.map_apply(:name) { |s, n| s << "#{n}#{i += 1}" })
    end

    def test_call
      def (o = Object.new).foo
        :foo
      end
      assert_equal :foo, Proc.call(o) { foo }
    end

    def test_array
      assert_equal [1,2,3], Proc.array.call(1,2,3)
    end

    def test_first
      assert_equal 1, Proc.first.call(1,2,3)
      assert_equal 1, Proc.head.call(1,2,3)
    end

    def test_second
      assert_equal 2, Proc.second.call(1,2,3)
    end

    def test_tail
      assert_equal [ 2, 3 ], Proc.tail.call(1,2,3)
    end

    def test_last
      assert_equal 3, Proc.last.call(1,2,3)
    end

    def test_rotate
      assert_equal [ 2, 3, 1 ], Proc.rotate.call(1,2,3)
      assert_equal [ 2, 1 ], Proc.swap.call(1,2)
    end

    def test_id1
      assert_equal :foo, Proc.id1.call(:foo)
    end

    def test_const
      assert_equal :baz, Proc.const(:baz).call(:foo, :bar)
      assert_equal :baz, Proc.const { :baz }.call(:foo, :bar)
    end

    def test_nth
      assert_equal 2, Proc.nth(1).call(1,2,3)
    end

    def square(x)
      x ** 2
    end

    def test_from
      assert_equal [ 1, 4, 9 ], [ 1, 2, 3 ].map(&Proc.from{:square})
    end
  end
end

VaKeR 2022