nendo 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -370,6 +370,127 @@ trampCall(
370
370
  (v.yield "three")))))
371
371
 
372
372
 
373
+ (test* "fold (for vector)"
374
+ 120
375
+ (fold
376
+ (lambda (item result) (* item result))
377
+ 1
378
+ '#(1 2 3 4 5)))
379
+
380
+ (test* "fold (for Range)"
381
+ 5050
382
+ (fold
383
+ (lambda (item result) (+ item result))
384
+ 1
385
+ (Range.new 2 100)))
386
+
387
+ (test* "fold (for string vector)"
388
+ "a/b/c/d/e/f/g/h"
389
+ (fold
390
+ (lambda (item result) (+ result "/" item))
391
+ "a"
392
+ (. "bcdefgh" split "")))
393
+
394
+ (test* "fold (for Enumerable)"
395
+ "one:two:three:four"
396
+ (fold
397
+ (lambda (item result) (+ result ":" item))
398
+ "one"
399
+ (Enumerator.new
400
+ (&block (v)
401
+ (v.yield "two")
402
+ (v.yield "three")
403
+ (v.yield "four")
404
+ ))))
405
+
373
406
 
407
+ ;;-------------------------------------------------------------------
408
+ (test-section "ruby-lazy for Enumerable")
409
+
410
+ (let1 arr '#(1 2 3)
411
+ (test* "ruby-lazy is a kind of vector? (1)"
412
+ #t
413
+ (vector? arr))
414
+ (test* "ruby-lazy is a kind of vector? (2)"
415
+ #t
416
+ (vector? (ruby-lazy arr)))
417
+ (test* "ruby-lazy is a kind of vector? (3)"
418
+ #t
419
+ (vector? (ruby-lazy (ruby-lazy arr)))))
420
+
421
+ (if (ruby-lazy-enabled-platform?)
422
+ ;; Ruby 2.0
423
+ (let ((arr '#(1 2 3))
424
+ (vec (ruby-lazy '#( 1 2 3 4 5 6 7 8 9 10 ))))
425
+
426
+ (test* "ruby-lazy? (for Ruby-2.0)"
427
+ #f
428
+ (ruby-lazy? arr))
429
+ (test* "ruby-lazy? (for Ruby-2.0)"
430
+ #t
431
+ (ruby-lazy? (ruby-lazy arr)))
432
+ (test* "ruby-lazy? (for Ruby-2.0)"
433
+ #t
434
+ (ruby-lazy? (ruby-lazy (ruby-lazy arr))))
435
+ (test* "ruby-lazy? (for Ruby-2.0)"
436
+ #f
437
+ (ruby-lazy? STDIN))
438
+ (test* "ruby-lazy? (for Ruby-2.0)"
439
+ #t
440
+ (ruby-lazy? (ruby-lazy STDIN)))
441
+ (test* "size of ruby-lazy (for Ruby-2.0)"
442
+ 10
443
+ (vec.size))
444
+ (test* "size of ruby-lazy (for Ruby-2.0)"
445
+ 10
446
+ (vector-length vec))
447
+ (test* "index of ruby-lazy"
448
+ (test-error NoMethodError)
449
+ (vector-ref vec 2))
450
+ (test* "ruby-lazy to list"
451
+ '(1 2 3 4 5 6 7 8 9 10)
452
+ (vector->list vec))
453
+ (test* "size of ruby-lazy"
454
+ 10
455
+ (length (vector->list vec)))
456
+ (test* "index of ruby-lazy"
457
+ 3
458
+ (vector-ref (list->vector (vector->list vec)) 2))
459
+ (test* "vector-equal?"
460
+ (test-error NoMethodError)
461
+ (vector-equal? vec (list->vector (range 10 1))))
462
+ (test* "vector-equal?"
463
+ #t
464
+ (vector-equal? (list->vector (vector->list vec)) (list->vector (range 10 1))))
465
+ (test* "vector-length"
466
+ (test-error TypeError)
467
+ (length (ruby-lazy (make-vector 100))))
468
+ (test* "vector-length"
469
+ 100
470
+ (length (vector->list (ruby-lazy (make-vector 100)))))
471
+ )
472
+
473
+ ;; Ruby 1.9.x
474
+ (let1 arr '#(1 2 3)
475
+ (test* "ruby-lazy? (for Ruby 1.9.x)"
476
+ #f
477
+ (ruby-lazy? arr))
478
+ (test* "ruby-lazy? (for Ruby 1.9.x)"
479
+ #f
480
+ (ruby-lazy? (ruby-lazy arr)))
481
+ (test* "ruby-lazy? (for Ruby 1.9.x)"
482
+ #f
483
+ (ruby-lazy? (ruby-lazy (ruby-lazy arr))))
484
+ (test* "ruby-lazy? (for Ruby 1.9.x)"
485
+ #f
486
+ (ruby-lazy? STDIN))
487
+ (test* "ruby-lazy? (for Ruby 1.9.x)"
488
+ #f
489
+ (ruby-lazy? (ruby-lazy STDIN)))
490
+ ))
491
+
492
+
493
+
494
+
374
495
  ;;===================================================================
375
496
  (test-end)
data/test/nendo_spec.rb CHANGED
@@ -1776,6 +1776,11 @@ EOS
1776
1776
  @nendo.evalStr( " (filter-map (lambda (x) (= x 100)) '(1 2 3)) " ).should == "()"
1777
1777
  @nendo.evalStr( " (filter-map (lambda (x) (= x 2)) '(1 2 3)) " ).should == "(#t)"
1778
1778
  @nendo.evalStr( " (filter-map (lambda (x) (not (= x 2))) '(1 2 3)) " ).should == "(#t #t)"
1779
+ @nendo.evalStr( " (fold (lambda (x y) x y) 0 '()) " ).should == "0"
1780
+ @nendo.evalStr( " (fold (lambda (x y) (+ x y)) 0 '(1 2 3)) " ).should == "6"
1781
+ @nendo.evalStr( " (fold (lambda (x y) (+ x y)) 1 '(2 3 4)) " ).should == "10"
1782
+ @nendo.evalStr( " (fold (lambda (x y) (* x y)) 1 '(2 3 4 5)) " ).should == "120"
1783
+ @nendo.evalStr( " (fold (lambda (x y) (* x y)) 0 '(2 3 4 5)) " ).should == "0"
1779
1784
  @nendo.evalStr( <<EOS
1780
1785
  (filter-map
1781
1786
  (lambda (x)
@@ -4,6 +4,7 @@ require 'rspec/core/formatters/progress_formatter'
4
4
  # ruby bin/spec xxxxx.rb -r ./test/rspec_formatter_for_emacs.rb -f CustomFormatter
5
5
  class CustomFormatter < RSpec::Core::Formatters::ProgressFormatter
6
6
  def backtrace_line(line)
7
+ return nil if configuration.cleaned_from_backtrace?(line)
7
8
  str = line.gsub(/([^:]*\.rb):([0-9]+):in /) do
8
9
  path = "#{$1}"
9
10
  lineno = "#{$2}"
metadata CHANGED
@@ -1,49 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nendo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
5
- prerelease:
4
+ version: 0.6.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Kiyoka Nishiyama
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-24 00:00:00.000000000 Z
11
+ date: 2013-03-19 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
- requirement: &2160450020 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
- type: :runtime
20
+ type: :development
23
21
  prerelease: false
24
- version_requirements: *2160450020
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
25
41
  - !ruby/object:Gem::Dependency
26
42
  name: json
27
- requirement: &2160447700 !ruby/object:Gem::Requirement
28
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
29
44
  requirements:
30
45
  - - ! '>='
31
46
  - !ruby/object:Gem::Version
32
47
  version: '0'
33
48
  type: :runtime
34
49
  prerelease: false
35
- version_requirements: *2160447700
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
36
69
  - !ruby/object:Gem::Dependency
37
70
  name: rake
38
- requirement: &2160446020 !ruby/object:Gem::Requirement
39
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: json
85
+ requirement: !ruby/object:Gem::Requirement
40
86
  requirements:
41
87
  - - ! '>='
42
88
  - !ruby/object:Gem::Version
43
89
  version: '0'
44
90
  type: :runtime
45
91
  prerelease: false
46
- version_requirements: *2160446020
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
47
97
  description: Nendo is a programming language written in Ruby.
48
98
  email: kiyoka@sumibi.org
49
99
  executables:
@@ -131,26 +181,25 @@ files:
131
181
  - test/util-list-test.nnd
132
182
  homepage: http://github.com/kiyoka/nendo
133
183
  licenses: []
184
+ metadata: {}
134
185
  post_install_message:
135
186
  rdoc_options: []
136
187
  require_paths:
137
188
  - lib
138
189
  required_ruby_version: !ruby/object:Gem::Requirement
139
- none: false
140
190
  requirements:
141
191
  - - ! '>='
142
192
  - !ruby/object:Gem::Version
143
193
  version: '0'
144
194
  required_rubygems_version: !ruby/object:Gem::Requirement
145
- none: false
146
195
  requirements:
147
196
  - - ! '>='
148
197
  - !ruby/object:Gem::Version
149
198
  version: '0'
150
199
  requirements: []
151
200
  rubyforge_project:
152
- rubygems_version: 1.8.17
201
+ rubygems_version: 2.0.3
153
202
  signing_key:
154
- specification_version: 3
203
+ specification_version: 4
155
204
  summary: Nendo is a dialect of Lisp.
156
205
  test_files: []