Newer
Older
Import / applications / HighwayDash / ports / Framework / SoA_AoS.cpp
//  BlockyFroggy
//  Copyright © 2017 John Ryland.
//  All rights reserved.
#include "SoA_AoS.h"

#include "Utilities.h"
#include <vector>
#include <ctime>
#include <cstdlib>
#include <chrono>
#include <sstream>
#include <new>
#include <dlfcn.h>


#if ENABLE_UNIT_TESTS


DECLARE_STRUCT_BEGIN(S)
  DECLARE_MEMBER2(int, a)
  DECLARE_MEMBER2(int, b)
  DECLARE_MEMBER2(int, c)
  struct vecBlah {
    int x, y, z;
  } v[SIZE];
DECLARE_STRUCT_END(S)


MAKE_AOS(array1, S, 100)
MAKE_SOA(array3, S, 100)
SOA<S,1000> array4;
AOS<S,1000> array5;


DECLARE_UNIT_TEST(AOS_SOA_Tests)
{
  MAKE_AOS(array2, S, 100)
  
  for (int i = 0; i < 100; i++)
  {
    GET(array1, a, i) = i;
    GET(array2, a, i) = i;
    GET(array3, a, i) = i;
    //GET(array3, v.x, i) = i;
    MEMBER(array4[i],a) = i;
    MEMBER(array5[i],a) = i;
    //MEMBER(array5[i],v[0].x) = i; // nested doesn't work !!!!!!!!!!!!!!!!!!!!!!
  }

  for (int i = 0; i < 100; i++)
  {
    CHECK(i == GET(array1, a, i));
    CHECK(i == GET(array2, a, i));
    CHECK(i == GET(array3, a, i));
    CHECK(i == MEMBER(array4[i],a));
    CHECK(i == MEMBER(array5[i],a));
    // CHECK(i == MEMBER(array5[i],v[0].x));
  }
}


#endif