# Simple Conformance Test Data Files

The test data files for the `simple` conformance test suite
are described by the `SimpleTestFile` message defined in
[`simple.proto`](../../../proto/cel/expr/conformance/test/simple.proto).
See the documentation in that file for the meaning of the various fields.

A run of the simple tests chooses one or more data files and attempts
to run all the tests in those files.  Test files are organized so that
implementations can implement a prescribed subset of CEL functionality.
For instance, implementations which don't support macros can avoid testing
against the `macros.textproto` file.

The available test files are:

- [`plumbing.textproto`](plumbing.textproto) Checks the basics of the CelService
  protocol to ensure that the server is implemented correctly.

- [`basic.textproto`](basic.textproto) Checks the most basic operations that
  all CEL implementations should support:
  - literals of various types;
  - variables of various types.

- [`comparisons.textproto`](comparisons.textproto) Checks the standard functions
  that return a boolean value.

- [`conversions.textproto`](conversions.textproto) Checks conversions between
  types and type tests.

- [`dynamic.textproto`](dynamic.textproto) Checks the automatic conversions
  associated with the well-known protobuf messages.

- [`enums.textproto`](enums.textproto) Checks handling of protobuf enums.

- [`fields.textproto`](fields.textproto) Checks field selection in messages
  and maps.

- [`fp_math.textproto`](fp_math.textproto) Checks floating-point arithmetic.

- [`integer_math.textproto`](integer_math.textproto) Checks integer arithmetic.

- [`lists.textproto`](lists.textproto) Checks list operations.

- [`logic.textproto`](logic.textproto) Checks special logical operators.

- [`macros.textproto`](macros.textproto) Checks use of CEL macros.

- [`namespace.textproto`](namespace.textproto) Checks use of namespaces and
  qualified identifiers.

- [`parse.textproto`](parse.textproto) End-to-end tests of parsing. More
  detailed parsing tests will the subject of a later conformance suite.

- [`proto2.textproto`](proto2.textproto) Checks use of protocol buffers version
  2.

- [`proto3.textproto`](proto3.textproto) Checks use of protocol buffers version
  3.

- [`string.textproto`](string.textproto) Checks functions on strings.

- [`timestamps.textproto`](timestamps.textproto) Checks `timestamp` and `duration`
  values and operations.

- [`unknowns.textproto`](unknowns.textproto) Checks evaluation where some
  inputs are marked as unknown.
