tbpgr_utils 0.0.36 → 0.0.37

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/README.md +40 -1
  2. data/lib/open_classes/array/together.rb +23 -0
  3. data/lib/open_classes/array/together_at.rb +29 -0
  4. data/lib/open_classes/array/together_clear.rb +24 -0
  5. data/lib/open_classes/array/together_compact.rb +44 -0
  6. data/lib/open_classes/array/together_concat.rb +25 -0
  7. data/lib/open_classes/array/together_delete.rb +46 -0
  8. data/lib/open_classes/array/together_delete_at.rb +43 -0
  9. data/lib/open_classes/array/together_delete_if.rb +38 -0
  10. data/lib/open_classes/array/together_empty.rb +31 -0
  11. data/lib/open_classes/array/together_fill.rb +43 -0
  12. data/lib/open_classes/array/together_first.rb +40 -0
  13. data/lib/open_classes/array/together_helper.rb +25 -0
  14. data/lib/open_classes/array/together_include.rb +50 -0
  15. data/lib/open_classes/array/together_index.rb +34 -0
  16. data/lib/open_classes/array/together_insert.rb +34 -0
  17. data/lib/open_classes/array/together_last.rb +40 -0
  18. data/lib/open_classes/array/together_map.rb +87 -0
  19. data/lib/open_classes/array/together_pop.rb +47 -0
  20. data/lib/open_classes/array/together_reduce.rb +59 -0
  21. data/lib/open_classes/array/together_reverse.rb +53 -0
  22. data/lib/open_classes/array/together_sample.rb +49 -0
  23. data/lib/open_classes/array/together_select.rb +50 -0
  24. data/lib/open_classes/array/together_shift.rb +47 -0
  25. data/lib/open_classes/array/together_with_index.rb +24 -0
  26. data/lib/open_classes/array.rb +23 -718
  27. data/lib/tbpgr_utils/version.rb +1 -1
  28. data/spec/open_classes/array/together_at_spec.rb +61 -0
  29. data/spec/open_classes/array/together_clear_spec.rb +51 -0
  30. data/spec/open_classes/array/together_compact_spec.rb +103 -0
  31. data/spec/open_classes/array/together_concat_spec.rb +53 -0
  32. data/spec/open_classes/array/together_delete_at_spec.rb +78 -0
  33. data/spec/open_classes/array/together_delete_if_spec.rb +61 -0
  34. data/spec/open_classes/array/together_delete_spec.rb +80 -0
  35. data/spec/open_classes/array/together_empty_spec.rb +58 -0
  36. data/spec/open_classes/array/together_fill_spec.rb +79 -0
  37. data/spec/open_classes/array/together_first_spec.rb +84 -0
  38. data/spec/open_classes/array/together_include_spec.rb +100 -0
  39. data/spec/open_classes/array/together_index_spec.rb +69 -0
  40. data/spec/open_classes/array/together_insert_spec.rb +65 -0
  41. data/spec/open_classes/array/together_last_spec.rb +84 -0
  42. data/spec/open_classes/array/together_map_spec.rb +171 -0
  43. data/spec/open_classes/array/together_pop_spec.rb +105 -0
  44. data/spec/open_classes/array/together_reduce_spec.rb +100 -0
  45. data/spec/open_classes/array/together_reverse_spec.rb +119 -0
  46. data/spec/open_classes/array/together_select_spec.rb +76 -0
  47. data/spec/open_classes/array/together_shift_spec.rb +105 -0
  48. data/spec/open_classes/array/together_spec.rb +51 -0
  49. data/spec/open_classes/array/together_with_index_spec.rb +51 -0
  50. data/spec/open_classes/together_sample_spec.rb +122 -0
  51. data/spec/spec_helper.rb +1 -1
  52. metadata +82 -14
  53. data/spec/open_classes/array_spec.rb +0 -1699
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.36'
5
+ VERSION = '0.0.37'
6
6
  end
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_at do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3], %w{one two three}],
12
+ index: 2,
13
+ method_name: :together_at,
14
+ expected: [3, 'three'],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'contain nil case',
19
+ inputs: [[1, 2, 3], %w{one two}],
20
+ index: 2,
21
+ method_name: :together_at,
22
+ expected: [3, nil],
23
+ },
24
+ {
25
+ case_no: 3,
26
+ case_title: 'valid case',
27
+ inputs: [[1, 2, 3], %w{one two three}],
28
+ index: 2,
29
+ method_name: :tat,
30
+ expected: [3, 'three'],
31
+ },
32
+ ]
33
+
34
+ cases.each do |c|
35
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
36
+ begin
37
+ case_before c
38
+
39
+ # -- given --
40
+ # nothing
41
+
42
+ # -- when --
43
+ actual = c[:inputs].send c[:method_name], c[:index]
44
+
45
+ # -- then --
46
+ expect(actual).to eq(c[:expected])
47
+ ensure
48
+ case_after c
49
+ end
50
+ end
51
+
52
+ def case_before(c)
53
+ # implement each case before
54
+ end
55
+
56
+ def case_after(c)
57
+ # implement each case after
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_clear do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3], %w{one two three}],
12
+ method_name: :together_clear,
13
+ expected: [[], []],
14
+ },
15
+ {
16
+ case_no: 2,
17
+ case_title: 'valid case',
18
+ inputs: [[1, 2, 3], %w{one two three}],
19
+ method_name: :tclear,
20
+ expected: [[], []],
21
+ },
22
+ ]
23
+
24
+ cases.each do |c|
25
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
26
+ begin
27
+ case_before c
28
+
29
+ # -- given --
30
+ # nothing
31
+
32
+ # -- when --
33
+ actual = c[:inputs].send c[:method_name]
34
+
35
+ # -- then --
36
+ expect(actual).to eq(c[:expected])
37
+ ensure
38
+ case_after c
39
+ end
40
+ end
41
+
42
+ def case_before(c)
43
+ # implement each case before
44
+ end
45
+
46
+ def case_after(c)
47
+ # implement each case after
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,103 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_compact do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
12
+ method_name: :together_compact,
13
+ expected_self: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
14
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'valid case(use alias tcompact)',
19
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
20
+ method_name: :tcompact,
21
+ expected_self: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
22
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
23
+ },
24
+ ]
25
+
26
+ cases.each do |c|
27
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
28
+ begin
29
+ case_before c
30
+
31
+ # -- given --
32
+ # nothing
33
+
34
+ # -- when --
35
+ actual = c[:inputs].send c[:method_name]
36
+
37
+ # -- then --
38
+ expect(c[:inputs]).to eq(c[:expected_self])
39
+ expect(actual).to eq(c[:expected_ret])
40
+ ensure
41
+ case_after c
42
+ end
43
+ end
44
+
45
+ def case_before(c)
46
+ # implement each case before
47
+ end
48
+
49
+ def case_after(c)
50
+ # implement each case after
51
+ end
52
+ end
53
+ end
54
+
55
+ context :together_compact! do
56
+ cases = [
57
+ {
58
+ case_no: 1,
59
+ case_title: 'valid case',
60
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
61
+ method_name: :together_compact!,
62
+ expected_self: [[1, 2, 3], ['a', 'b', 'c', 'd']],
63
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
64
+ },
65
+ {
66
+ case_no: 2,
67
+ case_title: 'valid case(use alias tcompact)',
68
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
69
+ method_name: :tcompact!,
70
+ expected_self: [[1, 2, 3], ['a', 'b', 'c', 'd']],
71
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
72
+ },
73
+ ]
74
+
75
+ cases.each do |c|
76
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
77
+ begin
78
+ case_before c
79
+
80
+ # -- given --
81
+ # nothing
82
+
83
+ # -- when --
84
+ actual = c[:inputs].send c[:method_name]
85
+
86
+ # -- then --
87
+ expect(c[:inputs]).to eq(c[:expected_self])
88
+ expect(actual).to eq(c[:expected_ret])
89
+ ensure
90
+ case_after c
91
+ end
92
+ end
93
+
94
+ def case_before(c)
95
+ # implement each case before
96
+ end
97
+
98
+ def case_after(c)
99
+ # implement each case after
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_concat do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3], %w{one two three}],
12
+ add_list: [4, 5, 6],
13
+ method_name: :together_concat,
14
+ expected: [[1, 2, 3, 4, 5, 6], ['one', 'two', 'three', 4, 5, 6]],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'valid case',
19
+ inputs: [[1, 2, 3], %w{one two three}],
20
+ add_list: [4, 5, 6],
21
+ method_name: :tconcat,
22
+ expected: [[1, 2, 3, 4, 5, 6], ['one', 'two', 'three', 4, 5, 6]],
23
+ },
24
+ ]
25
+
26
+ cases.each do |c|
27
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
28
+ begin
29
+ case_before c
30
+
31
+ # -- given --
32
+ # nothing
33
+
34
+ # -- when --
35
+ c[:inputs].send c[:method_name], c[:add_list]
36
+
37
+ # -- then --
38
+ expect(c[:inputs]).to eq(c[:expected])
39
+ ensure
40
+ case_after c
41
+ end
42
+ end
43
+
44
+ def case_before(c)
45
+ # implement each case before
46
+ end
47
+
48
+ def case_after(c)
49
+ # implement each case after
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_delete_at do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
12
+ delete_value: 2,
13
+ method_name: :together_delete_at,
14
+ expected: [[1, 2, 4], [2, 3, 5]],
15
+ ret: [3, 4],
16
+ },
17
+ {
18
+ case_no: 2,
19
+ case_title: 'valid case(not exist)',
20
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
21
+ delete_value: 5,
22
+ method_name: :together_delete_at,
23
+ expected: [[1, 2, 3, 4], [2, 3, 4, 5]],
24
+ ret: [nil, nil],
25
+ },
26
+ {
27
+ case_no: 3,
28
+ case_title: 'valid case(minus index)',
29
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
30
+ delete_value: -3,
31
+ method_name: :together_delete_at,
32
+ expected: [[1, 3, 4], [2, 4, 5]],
33
+ ret: [2, 3],
34
+ },
35
+ {
36
+ case_no: 4,
37
+ case_title: 'valid case(use tdelete_at alias)',
38
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
39
+ delete_value: 2,
40
+ method_name: :tdelete_at,
41
+ expected: [[1, 2, 4], [2, 3, 5]],
42
+ ret: [3, 4],
43
+ },
44
+ ]
45
+
46
+ cases.each do |c|
47
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
48
+ begin
49
+ case_before c
50
+
51
+ # -- given --
52
+ # nothing
53
+
54
+ # -- when --
55
+ if c[:has_block]
56
+ actual = c[:inputs].send c[:method_name], c[:delete_value] {c[:block] }
57
+ else
58
+ actual = c[:inputs].send c[:method_name], c[:delete_value]
59
+ end
60
+
61
+ # -- then --
62
+ expect(actual).to eq(c[:ret])
63
+ expect(c[:inputs]).to eq(c[:expected])
64
+ ensure
65
+ case_after c
66
+ end
67
+ end
68
+
69
+ def case_before(c)
70
+ # implement each case before
71
+ end
72
+
73
+ def case_after(c)
74
+ # implement each case after
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_delete_if do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3, 4], [6, 4, 6, 8]],
12
+ delete_block_code: '(first + second).odd?',
13
+ method_name: :together_delete_if,
14
+ expected: [[2, 4], [4, 8]],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'not have delete target value case',
19
+ inputs: [[2, 2, 4, 4], [6, 4, 6, 8]],
20
+ delete_block_code: '(first + second).odd?',
21
+ method_name: :together_delete_if,
22
+ expected: nil,
23
+ },
24
+ {
25
+ case_no: 3,
26
+ case_title: 'valid case(alias tdelete_if)',
27
+ inputs: [[1, 2, 3, 4], [6, 4, 6, 8]],
28
+ delete_block_code: '(first + second).odd?',
29
+ method_name: :tdelete_if,
30
+ expected: [[2, 4], [4, 8]],
31
+ },
32
+ ]
33
+
34
+ cases.each do |c|
35
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
36
+ begin
37
+ case_before c
38
+
39
+ # -- given --
40
+ # nothing
41
+
42
+ # -- when --
43
+ actual = c[:inputs].send c[:method_name] {|first, second|eval c[:delete_block_code], binding }
44
+
45
+ # -- then --
46
+ expect(actual).to eq(c[:expected])
47
+ ensure
48
+ case_after c
49
+ end
50
+ end
51
+
52
+ def case_before(c)
53
+ # implement each case before
54
+ end
55
+
56
+ def case_after(c)
57
+ # implement each case after
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,80 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_delete do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
12
+ delete_value: 2,
13
+ method_name: :together_delete,
14
+ expected: [[1, 3, 4], [3, 4, 5]],
15
+ ret: 2,
16
+ },
17
+ {
18
+ case_no: 2,
19
+ case_title: 'valid case(not exist and block use)',
20
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
21
+ delete_value: 6,
22
+ method_name: :together_delete,
23
+ expected: [[1, 2, 3, 4], [2, 3, 4, 5]],
24
+ ret: :ret,
25
+ has_block: true,
26
+ block: :ret,
27
+ },
28
+ {
29
+ case_no: 3,
30
+ case_title: 'valid case(not exist and block unuse)',
31
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
32
+ delete_value: 6,
33
+ method_name: :together_delete,
34
+ expected: [[1, 2, 3, 4], [2, 3, 4, 5]],
35
+ ret: nil,
36
+ },
37
+ {
38
+ case_no: 4,
39
+ case_title: 'valid case(alias tdelete)',
40
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
41
+ delete_value: 2,
42
+ method_name: :tdelete,
43
+ expected: [[1, 3, 4], [3, 4, 5]],
44
+ ret: 2,
45
+ },
46
+ ]
47
+
48
+ cases.each do |c|
49
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
50
+ begin
51
+ case_before c
52
+
53
+ # -- given --
54
+ # nothing
55
+
56
+ # -- when --
57
+ if c[:has_block]
58
+ actual = c[:inputs].send c[:method_name], c[:delete_value] {c[:block] }
59
+ else
60
+ actual = c[:inputs].send c[:method_name], c[:delete_value]
61
+ end
62
+
63
+ # -- then --
64
+ expect(actual).to eq(c[:ret])
65
+ expect(c[:inputs]).to eq(c[:expected])
66
+ ensure
67
+ case_after c
68
+ end
69
+ end
70
+
71
+ def case_before(c)
72
+ # implement each case before
73
+ end
74
+
75
+ def case_after(c)
76
+ # implement each case after
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_empty? do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'empty case',
11
+ inputs: [[], []],
12
+ method_name: :together_empty?,
13
+ expected: true,
14
+ },
15
+ {
16
+ case_no: 2,
17
+ case_title: 'not empty case',
18
+ inputs: [[1], []],
19
+ method_name: :together_empty?,
20
+ expected: false,
21
+ },
22
+ {
23
+ case_no: 3,
24
+ case_title: 'empty case(alias tempty?)',
25
+ inputs: [[], []],
26
+ method_name: :tempty?,
27
+ expected: true,
28
+ },
29
+ ]
30
+
31
+ cases.each do |c|
32
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
33
+ begin
34
+ case_before c
35
+
36
+ # -- given --
37
+ # nothing
38
+
39
+ # -- when --
40
+ actual = c[:inputs].send c[:method_name]
41
+
42
+ # -- then --
43
+ expect(actual).to eq(c[:expected])
44
+ ensure
45
+ case_after c
46
+ end
47
+ end
48
+
49
+ def case_before(c)
50
+ # implement each case before
51
+ end
52
+
53
+ def case_after(c)
54
+ # implement each case after
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,79 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_fill do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'not use block case',
11
+ inputs: [[*1..5], [*6..10]],
12
+ fill_value: 99,
13
+ method_name: :together_fill,
14
+ expected: [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]],
15
+ has_block: false,
16
+ },
17
+ {
18
+ case_no: 2,
19
+ case_title: 'use block, no args case',
20
+ inputs: [[*1..5], [*6..10]],
21
+ fill_value: nil,
22
+ method_name: :together_fill,
23
+ expected: [[2, 3, 4, 5, 6], [2, 3, 4, 5, 6]],
24
+ block_logic: '(i + 1) + 1',
25
+ has_block: true,
26
+ },
27
+ {
28
+ case_no: 3,
29
+ case_title: 'use block, has args case',
30
+ inputs: [[*1..5], [*6..10]],
31
+ fill_value: 2,
32
+ method_name: :together_fill,
33
+ expected: [[1, 2, 4, 5, 6], [6, 7, 4, 5, 6]],
34
+ block_logic: '(i + 1) + 1',
35
+ has_block: true,
36
+ },
37
+ {
38
+ case_no: 4,
39
+ case_title: 'not use block case(alias tfill)',
40
+ inputs: [[*1..5], [*6..10]],
41
+ fill_value: 99,
42
+ method_name: :tfill,
43
+ expected: [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]],
44
+ has_block: false,
45
+ },
46
+ ]
47
+
48
+ cases.each do |c|
49
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
50
+ begin
51
+ case_before c
52
+
53
+ # -- given --
54
+ # nothing
55
+
56
+ # -- when --
57
+ if c[:has_block]
58
+ actual = c[:inputs].send c[:method_name], c[:fill_value] {|i|eval c[:block_logic], binding }
59
+ else
60
+ actual = c[:inputs].send c[:method_name], c[:fill_value]
61
+ end
62
+
63
+ # -- then --
64
+ expect(actual).to eq(c[:expected])
65
+ ensure
66
+ case_after c
67
+ end
68
+ end
69
+
70
+ def case_before(c)
71
+ # implement each case before
72
+ end
73
+
74
+ def case_after(c)
75
+ # implement each case after
76
+ end
77
+ end
78
+ end
79
+ end