(root)/
libredwg-0.13/
test/
unit-testing/
assocarraymodifyactionbody.c
       1  // TODO coverage
       2  #define DWG_TYPE DWG_TYPE_ASSOCARRAYMODIFYACTIONBODY
       3  #include "common.c"
       4  
       5  void
       6  api_process (dwg_object *obj)
       7  {
       8    int error, isnew;
       9    ASSOCARRAYACTIONBODY_fields;
      10    BITCODE_H *deps;
      11    BITCODE_BS status;
      12    BITCODE_BL num_items;
      13    Dwg_ARRAYITEMLOCATOR *items;
      14  
      15    Dwg_Version_Type dwg_version = obj->parent->header.version;
      16  #ifdef DEBUG_CLASSES
      17    dwg_obj_assocarraymodifyactionbody *_obj
      18        = dwg_object_to_ASSOCARRAYMODIFYACTIONBODY (obj);
      19    bool good = 1;
      20  
      21    // ASSOCACTIONBODY:
      22    CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, aab_version, BL);
      23    CHK_ASSOCPARAMBASEDACTIONBODY (ASSOCARRAYMODIFYACTIONBODY);
      24  
      25    CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, aaab_version, BL);
      26    CHK_ENTITY_UTF8TEXT (_obj, ASSOCARRAYMODIFYACTIONBODY, paramblock);
      27    if (!dwg_dynapi_entity_value (_obj, "ASSOCARRAYMODIFYACTIONBODY",
      28                                  "transmatrix", &transmatrix, NULL))
      29      fail ("ASSOCARRAYMODIFYACTIONBODY.transmatrix");
      30    for (unsigned i = 0; i < 16; i += 4)
      31      {
      32        for (unsigned j = i; j < i + 4; j++)
      33          { /* catches nan */
      34            if (transmatrix[j] != _obj->transmatrix[j])
      35              good = 0;
      36          }
      37        if (good)
      38          ok ("ASSOCARRAYMODIFYACTIONBODY.transmatrix[%d]: (%f, %f, %f, %f)", i,
      39              transmatrix[i], transmatrix[i + 1], transmatrix[i + 2],
      40              transmatrix[i + 3]);
      41        else
      42          fail ("ASSOCARRAYMODIFYACTIONBODY.transmatrix[%d]: (%f, %f, %f, %f)",
      43                i, transmatrix[i], transmatrix[i + 1], transmatrix[i + 2],
      44                transmatrix[i + 3]);
      45      }
      46  
      47    CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, status, BS);
      48    CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, num_items, BL);
      49    if (!dwg_dynapi_entity_value (_obj, "ASSOCARRAYMODIFYACTIONBODY", "items",
      50                                  &items, NULL))
      51      fail ("ASSOCARRAYMODIFYACTIONBODY.items");
      52    for (unsigned i = 0; i < num_items; i++)
      53      {
      54        CHK_SUBCLASS_TYPE (items[i], ARRAYITEMLOCATOR, itemloc1, BL);
      55        CHK_SUBCLASS_TYPE (items[i], ARRAYITEMLOCATOR, itemloc2, BL);
      56        CHK_SUBCLASS_TYPE (items[i], ARRAYITEMLOCATOR, itemloc3, BL);
      57        // FIXME CHK_SUBCLASS_VECTOR_TYPE (items[i], ARRAYITEMLOCATOR,
      58        // "itemloc[3]", 3, BL);
      59        // ok ("ASSOCARRAYMODIFYACTIONBODY.items[%d].itemloc[0]: " FORMAT_BL, i,
      60        // items[i].itemloc[0]); ok
      61        // ("ASSOCARRAYMODIFYACTIONBODY.items[%d].itemloc[1]: " FORMAT_BL, i,
      62        // items[i].itemloc[1]); ok
      63        // ("ASSOCARRAYMODIFYACTIONBODY.items[%d].itemloc[2]: " FORMAT_BL, i,
      64        // items[i].itemloc[2]);
      65      }
      66  #endif
      67  }