diff --git a/ChangeLog b/ChangeLog index 6cff0ce..3945b8b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Sep 23 20:42:38 2008 Minero Aoki + + * unit: new unit test suite. + Mon Sep 22 01:45:49 2008 Minero Aoki * test/div.cb: test %esi usage. diff --git a/unit/Makefile b/unit/Makefile new file mode 100644 index 0000000..51b5fe9 --- /dev/null +++ b/unit/Makefile @@ -0,0 +1,10 @@ +JAVA = java +JAVAC = javac +CLASSPATH = .:../lib/cbc.jar:./junit-4.5.jar +CLASSES = $(patsubst %.java,%.class,$(wildcard Test*.java)) + +test: $(CLASSES) + $(JAVA) -classpath $(CLASSPATH) TestAll + +%.class: %.java + $(JAVAC) -classpath $(CLASSPATH) $< diff --git a/unit/TestAll.java b/unit/TestAll.java new file mode 100644 index 0000000..83e4625 --- /dev/null +++ b/unit/TestAll.java @@ -0,0 +1,15 @@ +import org.junit.*; +import org.junit.runner.*; +import org.junit.runners.*; +import org.junit.runners.Suite.*; + +@RunWith(Suite.class) +@SuiteClasses({ + TestClonableIterator.class, + TestTextUtils.class +}) +public class TestAll { + static public void main(String[] args) { + JUnitCore.main(TestAll.class.getName()); + } +} diff --git a/unit/TestClonableIterator.java b/unit/TestClonableIterator.java new file mode 100644 index 0000000..9739a20 --- /dev/null +++ b/unit/TestClonableIterator.java @@ -0,0 +1,53 @@ +import net.loveruby.cflat.utils.ClonableIterator; +import java.util.*; +import org.junit.*; +import org.junit.runner.*; +import static org.junit.Assert.*; + +public class TestClonableIterator { + static public void main(String[] args) { + JUnitCore.main(TestClonableIterator.class.getName()); + } + + @Test public void hasNext_0() { + List list = new ArrayList(); + ClonableIterator it = new ClonableIterator(list); + assertEquals("[].hasNext #1", false, it.hasNext()); + assertEquals("[].hasNext #2", false, it.hasNext()); + } + + @Test public void hasNext_1() { + List list = new ArrayList(); + list.add(1); + ClonableIterator it = new ClonableIterator(list); + assertEquals("[1].hasNext #1", true, it.hasNext()); + assertEquals("[1].hasNext #2", true, it.hasNext()); + it.next(); + assertEquals("[].hasNext #1", false, it.hasNext()); + assertEquals("[].hasNext #2", false, it.hasNext()); + } + + @Test public void hasNext_2() { + List list = new ArrayList(); + list.add(1); + list.add(2); + ClonableIterator it = new ClonableIterator(list); + assertEquals("[1,2].hasNext #1", true, it.hasNext()); + assertEquals("[1,2].hasNext #2", true, it.hasNext()); + it.next(); + assertEquals("[2].hasNext #1", true, it.hasNext()); + assertEquals("[2].hasNext #2", true, it.hasNext()); + it.next(); + assertEquals("[].hasNext #1", false, it.hasNext()); + assertEquals("[].hasNext #2", false, it.hasNext()); + } + + @Test public void next() { + List list = new ArrayList(); + list.add(1); + list.add(2); + ClonableIterator it = new ClonableIterator(list); + assertEquals("[1,2].next", 1, it.next()); + assertEquals("[2].next", 2, it.next()); + } +} diff --git a/unit/TestTextUtils.java b/unit/TestTextUtils.java new file mode 100644 index 0000000..1c3c97e --- /dev/null +++ b/unit/TestTextUtils.java @@ -0,0 +1,17 @@ +import org.junit.*; +import org.junit.runner.*; +import static org.junit.Assert.*; +import static net.loveruby.cflat.utils.TextUtils.*; + +public class TestTextUtils { + static public void main(String[] args) { + JUnitCore.main(TestTextUtils.class.getName()); + } + + @Test public void test_dumpString() { + assertEquals("dumpString #1", "\"\"", dumpString("")); + } + + @Test public void test_isPrintable() { + } +} diff --git a/unit/run.sh b/unit/run.sh new file mode 100755 index 0000000..94f0cc4 --- /dev/null +++ b/unit/run.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +main() { + if [ $# -eq 0 ] + then + run_class TestAll + else + for t in "$@" + do + run_class $t + done + fi +} + +run_java() { + java -classpath .:../lib/cbc.jar:./junit-4.5.jar "$@" +} + +main "$@"