1 /*
   2  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
   3  * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
   4  */
   5 
   6 #include "precompiled.hpp"
   7 #include "gc/z/zArray.inline.hpp"
   8 #include "unittest.hpp"
   9 
  10 TEST(ZArrayTest, test_add) {
  11   ZArray<int> a;
  12 
  13   // Add elements
  14   for (int i = 0; i < 10; i++) {
  15     a.add(i);
  16   }
  17 
  18   // Check size
  19   ASSERT_EQ(a.size(), 10u);
  20 
  21   // Check elements
  22   for (int i = 0; i < 10; i++) {
  23     EXPECT_EQ(a.at(i), i);
  24   }
  25 }
  26 
  27 TEST(ZArrayTest, test_clear) {
  28   ZArray<int> a;
  29 
  30   // Add elements
  31   for (int i = 0; i < 10; i++) {
  32     a.add(i);
  33   }
  34 
  35   // Check size
  36   ASSERT_EQ(a.size(), 10u);
  37   ASSERT_EQ(a.is_empty(), false);
  38 
  39   // Clear elements
  40   a.clear();
  41 
  42   // Check size
  43   ASSERT_EQ(a.size(), 0u);
  44   ASSERT_EQ(a.is_empty(), true);
  45 
  46   // Add element
  47   a.add(11);
  48 
  49   // Check size
  50   ASSERT_EQ(a.size(), 1u);
  51   ASSERT_EQ(a.is_empty(), false);
  52 
  53   // Clear elements
  54   a.clear();
  55 
  56   // Check size
  57   ASSERT_EQ(a.size(), 0u);
  58   ASSERT_EQ(a.is_empty(), true);
  59 }
  60 
  61 TEST(ZArrayTest, test_iterator) {
  62   ZArray<int> a;
  63 
  64   // Add elements
  65   for (int i = 0; i < 10; i++) {
  66     a.add(i);
  67   }
  68 
  69   // Iterate
  70   int count = 0;
  71   ZArrayIterator<int> iter(&a);
  72   for (int value; iter.next(&value);) {
  73     ASSERT_EQ(a.at(count), count);
  74     count++;
  75   }
  76 
  77   // Check count
  78   ASSERT_EQ(count, 10);
  79 }