Class Choose::ChooseTest
In: lib/choose.rb
Parent: Test::Unit::TestCase

Methods

Classes and Modules

Class Choose::ChooseTest::Xs

Constants

REF_5 = [1, 2, 4, 0, 3]
REF_F_5 = [0.187528345035389, 0.368857819121331, 0.06954449811019, 0.188887464581057, 0.213757352204993]
REF_50 = [ 28, 12, 17, 10, 1, 37, 46, 25, 47, 2, 45, 36, 20, 5, 30, 14, 18, 39, 8, 15, 16, 43, 27, 33, 22, 7, 32, 3, 35, 9, 19, 13, 21, 6, 23, 26, 4, 40, 44, 11, 49, 29, 42, 24, 31, 48, 34, 0, 38, 41
REF_F_50 = [ 0.643785412423313, 0.765736325876787, 0.604515956481919, 0.133839202811942, 0.350400971015915, 0.966710213804618, 0.904755113180727, 0.88459848286584, 0.163951952941716, 0.808023529592901, 0.387806572020054, 0.659689131658524, 0.289974238490686, 0.813535830006003, 0.565311754588038, 0.889200099511072, 0.0668127918615937, 0.992091996129602, 0.604403987759724, 0.89254002738744, 0.601499371463433, 0.754795648856089, 0.751190354581922, 0.434389552799985, 0.761369747575372, 0.174903159961104, 0.940325234550983, 0.536097376374528, 0.957906004507095, 0.693120914744213, 0.23448576242663, 0.638284107437357, 0.423910334473476, 0.251349127152935, 0.457931924844161, 0.20579389645718, 0.256057573715225, 0.584466924890876, 0.609375598141924, 0.0856487881392241, 0.437958877766505, 0.432312048738822, 0.81560374982655, 0.142059376928955, 0.118824432371184, 0.958816710859537, 0.69899930502288, 0.118259542621672, 0.52218786906451, 0.339233995880932

Public Instance methods

[Source]

# File lib/choose.rb, line 163
      def checker_5 ( inp, ref, lim=nil )
        checker_n(5, REF_5, REF_F_5, inp, ref, lim)
      end

[Source]

# File lib/choose.rb, line 167
      def checker_50 ( inp, ref, lim=nil )
        checker_n(50, REF_50, REF_F_50, inp, ref, lim)
      end

[Source]

# File lib/choose.rb, line 152
      def checker_n ( n, ref_i, ref_f, inp, ref, lim=nil )
        mrg = MockRandomGenerator.new(ref_i, ref_f)
        my = []
        if lim == :no
          n.times { my << inp.choose(mrg) }
        else
          n.times { my << inp.choose(lim, mrg) }
        end
        assert_equal(ref, my)
      end

[Source]

# File lib/choose.rb, line 187
      def test_array_5
        checker_5 [4], [4] * 5, 5
        checker_5 [4, 5], [5, 4, 4, 4, 5], 5
        checker_5 [4, 5, 6], [5, 6, 5, 4, 4], 5
        checker_5 [2, 1, 0, 5, 4, 3], [1, 0, 4, 2, 5], 5
        10.times { assert(REF_50.include?(REF_50.choose)) }
      end

[Source]

# File lib/choose.rb, line 209
      def test_array_50
        checker_50 [4], [4] * 50, 50
        checker_50 [
          36,  16,  15, 6, 27, 33, 17, 10, 18, 39, 8, 43, 19, 23, 49, 40, 46, 37,
          9,  41, 35, 0, 38, 26, 22, 4, 7, 25, 21, 12, 42, 45, 28, 5, 31, 24, 34,
          48, 32, 30, 13, 29, 11, 2, 1, 20, 3, 44, 47, 14
        ], [
          21,  19,  37,  8,  16, 48, 3, 4, 44, 15, 20, 34, 35, 33, 42, 49, 9, 30,
          18,  40, 46, 2, 25, 5, 38, 10, 28, 6, 24, 39, 41, 23, 0, 17, 26, 7, 27,
          13, 1, 43, 14, 12, 11, 22, 45, 47, 31, 36, 32, 29
        ], 50
      end

[Source]

# File lib/choose.rb, line 180
      def test_float
        checker_5 Float, REF_F_5, 1.0
        checker_50 Float, REF_F_50, 1.0
        assert(Float.choose(2.0) < 2)
        assert(Float.choose < 1)
      end

[Source]

# File lib/choose.rb, line 230
      def test_float_instances
        assert_raise(ArgumentError) { checker_5 0.0, [], :no }
        checker_5  1.0, [ 0.187528345035389, 0.368857819121331, 0.06954449811019,
                          0.188887464581057, 0.213757352204993 ], :no
        assert(2.0.choose < 2)
      end

[Source]

# File lib/choose.rb, line 204
      def test_hash
        checker_5({ 1 => 2 }, [2] * 5, 5)
        checker_5({ 1 => 2, 3 => 4 }, [4, 2, 2, 2, 4], 5)
      end

[Source]

# File lib/choose.rb, line 174
      def test_integer
        checker_5 Integer, REF_5, 5
        checker_50 Integer, REF_50, 50
        assert(Integer.choose(1000) < 1000)
      end

[Source]

# File lib/choose.rb, line 222
      def test_integer_instances
        assert_raise(ArgumentError) { checker_5 0, [], :no }
        checker_5 1, [0] * 5, :no
        checker_5 4, [1, 2, 0, 0, 3], :no
        checker_5 10, REF_5, :no
        assert(1000.choose < 1000)
      end

[Source]

# File lib/choose.rb, line 237
      def test_integer_range_instances
        checker_5 1..1, [1] * 5, :no
        checker_5 1..2, [2, 1, 1, 1, 2], :no
        checker_5 0..1, [1, 0, 0, 0, 1], :no
        checker_5 0..4, [1, 2, 4, 0, 3], :no
      end

[Source]

# File lib/choose.rb, line 261
      def test_range_instances
        checker_5 'a'..'a', ['a'] * 5, :no
        checker_5 'a'..'b', ['b', 'a', 'a', 'a', 'b'], :no
        checker_5 Xs.new(1)..Xs.new(4), [2, 3, 1, 1, 4].map { |x| Xs.new(x) }, :no
      end

[Source]

# File lib/choose.rb, line 195
      def test_set_5
        checker_5 Set[4], [4] * 5, 5
        checker_5 Set[4, 5], [4, 5, 5, 5, 4], 5
        checker_5 Set[4, 5, 6], [6, 4, 6, 5, 5], 5
        checker_5 Set[2, 1, 0, 5, 4, 3], [0, 1, 3, 5, 2], 5
        set = REF_50.to_set
        10.times { assert(set.include?(set.choose)) }
      end

[Validate]