00001 00005 package edu.mit.csail.sdg.squander.examples.list; 00006 00007 import org.junit.Assert; 00008 import org.junit.Before; 00009 import org.junit.Test; 00010 00011 import edu.mit.csail.sdg.squander.examples.func.Utils; 00012 import edu.mit.csail.sdg.squander.examples.list.LinkedList; 00013 import edu.mit.csail.sdg.squander.examples.list.LinkedList.Node; 00014 import edu.mit.csail.sdg.squander.spec.SqFunc; 00015 00016 00017 public class LinkedListTest { 00018 00019 private LinkedList lst; 00020 00021 @Before 00022 public void setUp() { 00023 lst = new LinkedList(); 00024 lst.add(new Node(1)); 00025 Node n2 = new Node(2); 00026 n2.setNext(new Node(3)); 00027 lst.add(n2); 00028 lst.add(new Node(4)); 00029 } 00030 00031 @Test 00032 public void testFold() { 00033 int expected = 0; 00034 for (Node n : lst.nodes()) 00035 expected += n.getValue(); 00036 int sum = Utils.fold(lst, 0, SqFunc.mkFunc("return = @arg(0) + @arg(1).value")); 00037 Assert.assertEquals(expected, sum); 00038 } 00039 00040 }