package org.signalml.domain.signal.raw; import static org.signalml.SignalMLAssert.assertArrayEquals; import java.io.File; import java.io.IOException; import org.junit.Test; import org.signalml.app.model.signal.SignalExportDescriptor; import org.signalml.domain.signal.samplesource.DoubleArraySampleSource; import org.signalml.math.ArrayOperations; public class ReversedMultichannelSampleProcessorTest { private File file; private SignalExportDescriptor descriptor = new SignalExportDescriptor(); @Test public void testGetSamples() throws IOException { file = new File("reversed_test.bin"); double[][] samples = new double[][]{ {1.0, 2.0, 3.0, 4.0}, {5.0, 6.0, 7.0, 8.0}}; DoubleArraySampleSource originalSampleSource = new DoubleArraySampleSource(samples, 2, 4); RawSignalWriter writer = new RawSignalWriter(); writer.setMaximumBufferSize(2); writer.writeSignal(file, originalSampleSource, descriptor, null); RawSignalSampleSource rawSignalSampleSource = new RawSignalSampleSource(file, 2, 128.0F, descriptor.getSampleType(), descriptor.getByteOrder()); ReversedMultichannelSampleProcessor reversedSampleSource = new ReversedMultichannelSampleProcessor(rawSignalSampleSource); double[] firstChannel = new double[4]; reversedSampleSource.getSamples(0, firstChannel, 0, 4, 0); assertArrayEquals(samples[0], ArrayOperations.reverse(firstChannel), 1e-5); double[] secondChannel = new double[4]; reversedSampleSource.getSamples(1, secondChannel, 0, 4, 0); assertArrayEquals(samples[1], ArrayOperations.reverse(secondChannel), 1e-5); rawSignalSampleSource.close(); file.delete(); } @Test public void testGetSamples2() throws IOException { double[][] samples = new double[][]{ {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}, {11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0}}; DoubleArraySampleSource originalSampleSource = new DoubleArraySampleSource(samples, 2, 7); ReversedMultichannelSampleProcessor reversed = new ReversedMultichannelSampleProcessor(originalSampleSource); double[] firstChannel = new double[7]; reversed.getSamples(0, firstChannel, 0, 4, 0); reversed.getSamples(0, firstChannel, 4, 3, 4); assertArrayEquals(samples[0], ArrayOperations.reverse(firstChannel), 1e-5); double[] secondChannel = new double[7]; reversed.getSamples(1, secondChannel, 0, 7, 0); assertArrayEquals(samples[1], ArrayOperations.reverse(secondChannel), 1e-5); } }