/* ************************************************************************* */ TEST(VectorValues, assignment) { VectorValues actual; { // insert, with out-of-order indices VectorValues original; original.insert(0, Vector_(1, 1.0)); original.insert(1, Vector_(2, 2.0, 3.0)); original.insert(5, Vector_(2, 6.0, 7.0)); original.insert(2, Vector_(2, 4.0, 5.0)); actual = original; } // Check dimensions LONGS_EQUAL(6, actual.size()); LONGS_EQUAL(7, actual.dim()); LONGS_EQUAL(1, actual.dim(0)); LONGS_EQUAL(2, actual.dim(1)); LONGS_EQUAL(2, actual.dim(2)); LONGS_EQUAL(2, actual.dim(5)); // Logic EXPECT(actual.exists(0)); EXPECT(actual.exists(1)); EXPECT(actual.exists(2)); EXPECT(!actual.exists(3)); EXPECT(!actual.exists(4)); EXPECT(actual.exists(5)); EXPECT(!actual.exists(6)); // Check values EXPECT(assert_equal(Vector_(1, 1.0), actual[0])); EXPECT(assert_equal(Vector_(2, 2.0, 3.0), actual[1])); EXPECT(assert_equal(Vector_(2, 4.0, 5.0), actual[2])); EXPECT(assert_equal(Vector_(2, 6.0, 7.0), actual[5])); EXPECT(assert_equal(Vector_(7, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0), actual.vector())); // Check exceptions CHECK_EXCEPTION(actual.insert(1, Vector()), invalid_argument); }
/* ************************************************************************* */ TEST(VectorValues, append) { // insert VectorValues actual; actual.insert(0, Vector_(1, 1.0)); actual.insert(1, Vector_(2, 2.0, 3.0)); actual.insert(2, Vector_(2, 4.0, 5.0)); // append vector<size_t> dims(2); dims[0] = 3; dims[1] = 5; actual.append(dims); // Check dimensions LONGS_EQUAL(5, actual.size()); LONGS_EQUAL(13, actual.dim()); LONGS_EQUAL(1, actual.dim(0)); LONGS_EQUAL(2, actual.dim(1)); LONGS_EQUAL(2, actual.dim(2)); LONGS_EQUAL(3, actual.dim(3)); LONGS_EQUAL(5, actual.dim(4)); // Logic EXPECT(actual.exists(0)); EXPECT(actual.exists(1)); EXPECT(actual.exists(2)); EXPECT(actual.exists(3)); EXPECT(actual.exists(4)); EXPECT(!actual.exists(5)); // Check values EXPECT(assert_equal(Vector_(1, 1.0), actual[0])); EXPECT(assert_equal(Vector_(2, 2.0, 3.0), actual[1])); EXPECT(assert_equal(Vector_(2, 4.0, 5.0), actual[2])); // Check exceptions CHECK_EXCEPTION(actual.insert(3, Vector()), invalid_argument); }