Changeset - a85782edc8e8
[Not reviewed]
longmem
0 4 0
Hasan Yavuz Ă–ZDERYA - 8 years ago 2017-07-15 12:04:12
hy@ozderya.net
initial tests for ChunkedBuffer
4 files changed with 33 insertions and 8 deletions:
0 comments (0 inline, 0 general)
src/chunkedbuffer.cpp
Show inline comments
 
@@ -25,10 +25,10 @@ ChunkedBuffer::ChunkedBuffer()
 
    _size = 0;
 

	
 
    // create first chunk
 
    addChunk();
 
    addNewChunk();
 
}
 

	
 
~ChunkedBuffer::ChunkedBuffer()
 
ChunkedBuffer::~ChunkedBuffer()
 
{
 
    for (auto chunk : chunks)
 
    {
 
@@ -43,10 +43,10 @@ void ChunkedBuffer::addSamples(double* s
 
    while (i < size)
 
    {
 
        // select chunk to add data
 
        auto chunk = chunk->last();
 
        auto chunk = chunks.last();
 
        if (chunk->isFull())
 
        {
 
            chunk = addChunk(); // create a new chunk
 
            chunk = addNewChunk(); // create a new chunk
 
        }
 

	
 
        // add data to chunk
 
@@ -58,7 +58,7 @@ void ChunkedBuffer::addSamples(double* s
 
    _size += size;
 
}
 

	
 
DataChunk* ChunkedBuffer::addChunk()
 
DataChunk* ChunkedBuffer::addNewChunk()
 
{
 
    auto chunk = new DataChunk(_size, CHUNK_SIZE);
 
    chunks.append(chunk);
 
@@ -76,8 +76,8 @@ QRectF ChunkedBuffer::boundingRect() con
 
    // update on 'addSamples' and when dropping chunks
 

	
 
    // find ymin and ymax
 
    ymin = chunks->first().min();
 
    ymax = chunks->first().max();
 
    double ymin = chunks.first()->min();
 
    double ymax = chunks.first()->max();
 
    for (auto c : chunks)
 
    {
 
        ymin = std::min(ymin, c->min());
src/chunkedbuffer.h
Show inline comments
 
@@ -24,6 +24,8 @@
 
#include <QRectF>
 
#include <QVector>
 

	
 
#include "datachunk.h"
 

	
 
#define CHUNK_SIZE (1024)
 

	
 
class ChunkedBuffer
 
@@ -45,6 +47,7 @@ private:
 
    size_t numChunks;
 

	
 
    QList<DataChunk*> chunks;
 
    DataChunk* addNewChunk();
 
};
 

	
 

	
tests/CMakeLists.txt
Show inline comments
 
@@ -23,7 +23,9 @@ find_package(Qt5Widgets)
 
include_directories("../src")
 

	
 
add_executable(Test EXCLUDE_FROM_ALL
 
  test.cpp ../src/datachunk.cpp)
 
  test.cpp
 
  ../src/datachunk.cpp
 
  ../src/chunkedbuffer.cpp)
 
add_test(NAME test1 COMMAND Test)
 
qt5_use_modules(Test Widgets)
 

	
tests/test.cpp
Show inline comments
 
@@ -21,6 +21,7 @@
 
#include "catch.hpp"
 

	
 
#include "datachunk.h"
 
#include "chunkedbuffer.h"
 

	
 
TEST_CASE("DataChunk created empty", "[memory]")
 
{
 
@@ -77,3 +78,22 @@ TEST_CASE("filling data chunk", "[memory
 
    REQUIRE(c.avg() == Approx(500.5));
 
    REQUIRE(c.meanSquare() == Approx(333833.5));
 
}
 

	
 
TEST_CASE("ChunkedBuffer created empty", "[memory]")
 
{
 
    ChunkedBuffer b;
 

	
 
    REQUIRE(b.size() == 0);
 
    REQUIRE(b.boundingRect() == QRectF(0,0,0,0));
 
}
 

	
 
TEST_CASE("ChunkedBuffer adding data", "[memory]")
 
{
 
    ChunkedBuffer b;
 

	
 
    // add some small data
 
    double samples[10] = {1,2,3,4,5,6,7,8,9,10};
 
    b.addSamples(samples, 10);
 

	
 
    REQUIRE(b.size() == 10);
 
}
0 comments (0 inline, 0 general)