// Path: src/main/java/org/picofarad/sdr101/blocks/sources/ImpulseSource.java
// public class ImpulseSource implements SignalBlock {
//     private boolean first;
// 
//     public ImpulseSource() {
//         first = true;
//     }
// 
//     public double output() {
//         if (first) {
//             first = false;
//             return 1.0;
//         } else {
//             return 0.0;
//         }
//     }
// }


import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.picofarad.sdr101.blocks.sources.ImpulseSource;
        Assert.assertEquals(2, ff.taps());

        c.add(1.0);
        ff = new FirFilter(c);
        Assert.assertEquals(3, ff.taps());
    }

    @Test
    public void testOut() {
        List<Double> c = new ArrayList<Double>();
        c.add(0.0);
        c.add(1.0);

        FirFilter ff = new FirFilter(c);

        for (int i = 0; i < 441000; i++) {
            Assert.assertEquals(0.0, ff.output(), 0.0001);
        }
    }

    @Test
    public void testImpulseResponse() {
        List<Double> c = new ArrayList<Double>();
        c.add(0.0);
        c.add(0.1);
        c.add(1.0);
        c.add(-0.1);
        c.add(-1.0);

        FirFilter ff = new FirFilter(c);
// Path: src/main/java/org/picofarad/sdr101/blocks/sources/ImpulseSource.java
// public class ImpulseSource implements SignalBlock {
//     private boolean first;
// 
//     public ImpulseSource() {
//         first = true;
//     }
// 
//     public double output() {
//         if (first) {
//             first = false;
//             return 1.0;
//         } else {
//             return 0.0;
//         }
//     }
// }


// Path: src/test/java/org/picofarad/sdr101/blocks/FirFilterTest.java
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.picofarad.sdr101.blocks.sources.ImpulseSource;

        Assert.assertEquals(2, ff.taps());

        c.add(1.0);
        ff = new FirFilter(c);
        Assert.assertEquals(3, ff.taps());
    }

    @Test
    public void testOut() {
        List<Double> c = new ArrayList<Double>();
        c.add(0.0);
        c.add(1.0);

        FirFilter ff = new FirFilter(c);

        for (int i = 0; i < 441000; i++) {
            Assert.assertEquals(0.0, ff.output(), 0.0001);
        }
    }

    @Test
    public void testImpulseResponse() {
        List<Double> c = new ArrayList<Double>();
        c.add(0.0);
        c.add(0.1);
        c.add(1.0);
        c.add(-0.1);
        c.add(-1.0);

        FirFilter ff = new FirFilter(c);
        ff.setInput(new ImpulseSource());