Test Value Stack Push/Pop operation
| 10 | |
| 11 | // Test Value Stack Push/Pop operation |
| 12 | TEST(EvaluatorStackTest, StackPushPop) { |
| 13 | cel::Attribute attribute("name", {}); |
| 14 | EvaluatorStack stack(10); |
| 15 | stack.Push(cel::IntValue(1)); |
| 16 | stack.Push(cel::IntValue(2), AttributeTrail()); |
| 17 | stack.Push(cel::IntValue(3), AttributeTrail("name")); |
| 18 | |
| 19 | ASSERT_EQ(stack.Peek().GetInt().NativeValue(), 3); |
| 20 | ASSERT_FALSE(stack.PeekAttribute().empty()); |
| 21 | ASSERT_EQ(stack.PeekAttribute().attribute(), attribute); |
| 22 | |
| 23 | stack.Pop(1); |
| 24 | |
| 25 | ASSERT_EQ(stack.Peek().GetInt().NativeValue(), 2); |
| 26 | ASSERT_TRUE(stack.PeekAttribute().empty()); |
| 27 | |
| 28 | stack.Pop(1); |
| 29 | |
| 30 | ASSERT_EQ(stack.Peek().GetInt().NativeValue(), 1); |
| 31 | ASSERT_TRUE(stack.PeekAttribute().empty()); |
| 32 | } |
| 33 | |
| 34 | // Test that inner stacks within value stack retain the equality of their sizes. |
| 35 | TEST(EvaluatorStackTest, StackBalanced) { |
nothing calls this directly
no test coverage detected