package org.enumerable.lambda.enumerable.jruby;
import static org.junit.Assert.*;
import org.junit.Test;
public class EnumerableJRubyTest extends JRubyTestBase {
@Test
public void sanityCheckMonkeyPatch() throws Exception {
assertEquals(eval("[1, 2, 3]"),
eval("[1, 2 ,3].each {|n| Java::OrgEnumerableLambdaEnumerableJRuby::JRubyTestBase.debug n.to_s}"));
assertEquals("a", eval("[\"b\", \"a\", \"c\"].min"));
assertTrue((Boolean) eval("%w{ ant bear cat}.all? {|word| word.length >= 3}"));
assertEquals("11", eval("[\"2\",\"33\",\"4\",\"11\"].min {|a,b| a <=> b }"));
eval("test1 = [1,3,5,7,0, 2,43,53,6352,44,221,5]");
assertEquals(eval("test1"), eval("test1.to_a"));
assertEquals(eval("test1"), eval("test1.entries"));
eval("test4 = (1..10)");
assertEquals(eval("[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]"), eval("test4.sort { |a,b| b<=>a }"));
assertEquals(37L, eval("(1..10).detect(lambda { 37 }) {|i| i % 5 == 0 and i % 7 == 0 }"));
assertEquals(eval("[[2, 4, 6], [1, 3, 5]]"), eval("(1..6).partition {|i| (i&1).zero?}"));
assertTrue((Boolean) eval("(1..10).include?(5)"));
assertEquals(eval("[[1], [2], [3]]"), eval("(1..3).zip"));
assertEquals(eval("[Array]"), eval("[['foo']].map {|a|a.class}"));
}
@Test
public void testEnumerable() throws Exception {
require("test/testEnumerable");
}
@Test
public void testEnumerable_1_9() throws Exception {
require("test/testEnumerable_1_9");
}
}