// Path: src/main/java/org/picofarad/sdr101/blocks/sources/BufferSource.java
// public class BufferSource implements SignalBlock {
//     private Deque<Double> buffer;
// 
//     public BufferSource() {
//         buffer = new ArrayDeque<Double>();
//     }
// 
//     public void add(double d) {
//         buffer.offer(d);
//     }
// 
//     public double output() {
//         if (buffer.isEmpty()) {
//             return 0.0;
//         } else {
//             return buffer.remove();
//         }
//     }
// }


import org.junit.Assert;
import org.junit.Test;
import org.picofarad.sdr101.blocks.sources.BufferSource;
/* sdr101-java
 * Simple software-defined radio for Java.
 *
 * (c) Karl-Martin Skontorp <kms@skontorp.net> ~ http://22pf.org/
 * Licensed under the GNU GPL 2.0 or later.
 */

package org.picofarad.sdr101.blocks;


public class InvertedSummerTest {
    @Test
    public void testInvertedSummer() {
        BufferSource a = new BufferSource();
        BufferSource b = new BufferSource();

        InvertedSummer s = new InvertedSummer(a, b);

        a.add(0.0);
        a.add(0.5);
        a.add(1.0);

        b.add(1.0);
        b.add(0.5);
        b.add(2.0);

// Path: src/main/java/org/picofarad/sdr101/blocks/sources/BufferSource.java
// public class BufferSource implements SignalBlock {
//     private Deque<Double> buffer;
// 
//     public BufferSource() {
//         buffer = new ArrayDeque<Double>();
//     }
// 
//     public void add(double d) {
//         buffer.offer(d);
//     }
// 
//     public double output() {
//         if (buffer.isEmpty()) {
//             return 0.0;
//         } else {
//             return buffer.remove();
//         }
//     }
// }


// Path: src/test/java/org/picofarad/sdr101/blocks/InvertedSummerTest.java
import org.junit.Assert;
import org.junit.Test;
import org.picofarad.sdr101.blocks.sources.BufferSource;

/* sdr101-java
 * Simple software-defined radio for Java.
 *
 * (c) Karl-Martin Skontorp <kms@skontorp.net> ~ http://22pf.org/
 * Licensed under the GNU GPL 2.0 or later.
 */

package org.picofarad.sdr101.blocks;


public class InvertedSummerTest {
    @Test
    public void testInvertedSummer() {
        BufferSource a = new BufferSource();
        BufferSource b = new BufferSource();

        InvertedSummer s = new InvertedSummer(a, b);

        a.add(0.0);
        a.add(0.5);
        a.add(1.0);

        b.add(1.0);
        b.add(0.5);
        b.add(2.0);

        Assert.assertEquals(-1.0, s.output(), 0.0001);