### Question:
ValueNode extends Node { public Object getValue() { return value; } ValueNode(Object value);  ValueNode(GyroParser.BoolContext context);  ValueNode(GyroParser.LiteralStringContext context);  ValueNode(GyroParser.NumberContext context);  ValueNode(GyroParser.TextContext context);  ValueNode(GyroParser.TypeContext context);  ValueNode(GyroParser.WordContext context);  ValueNode(TerminalNode context); Object getValue(); @Override R accept(NodeVisitor<C, R, X> visitor, C context);  }### Answer:
@Test void constructorContextBoolean() { ValueNode node = (ValueNode) Node.parse("true", GyroParser::value); assertThat(node.getValue()).isEqualTo(Boolean.TRUE); }
@Test void constructorContextDouble() { ValueNode node = (ValueNode) Node.parse("41.41", GyroParser::value); assertThat(node.getValue()).isEqualTo(41.41); }
@Test void constructorContextLong() { ValueNode node = (ValueNode) Node.parse("41", GyroParser::value); assertThat(node.getValue()).isEqualTo(41L); }
@Test void constructorContextString() { ValueNode node = (ValueNode) Node.parse("'foo'", GyroParser::value); assertThat(node.getValue()).isEqualTo("foo"); }
@Test void getValue() { String value = "foo"; ValueNode node = new ValueNode(value); assertThat(node.getValue()).isEqualTo(value); }