= TCK Index

The TCK is split into categories based on language constructs.
The two main groups are clauses and expressions.
Each group enumerates its members.
Within each member, there are additional categories.

There is also an `uncategorized` and `precategorized` directory containing uncategorized features.


== Clauses


=== Call

* Call1 - Basic procedure calling
* Call2 - Procedure arguments
* Call3 - Assignable-type arguments
* Call4 - Null Arguments

=== Create

* Create1 - Creating nodes
* Create2 - Creating relationships
* Create3 - Interoperation with other clauses
* Create4 - Large Create Query
* Create5 - Multiple hops create patterns

=== Delete

* Delete1 - Deleting nodes
* Delete2 - Deleting relationships
* Delete3 - Deleting named paths
* Delete4 - Delete clause interoperation with other clauses
* Delete5 - Delete clause interoperation with built-in data types
* Delete6 - Negative scenarios

=== Match

* Match1 - Match nodes
* Match2 - Match relationships
* Match3 - Match fixed length patterns
* Match4 - Match variable length patterns scenarios
* Match5 - Match variable length patterns over given graphs scenarios
* Match6 - Match named paths scenarios
* Match7 - Optional match
* Match8 - Match clause interoperation with other clauses
* Match9 - Match deprecated scenarios

=== Match-where

* MatchWhere1 - Filter single variable
* MatchWhere2 - Filter multiple variables
* MatchWhere3 - Equi-Joins on variables
* MatchWhere4 - Non-Equi-Joins on variables
* MatchWhere5 - Filter on predicate resulting in null

=== Merge

* Merge1 - Merge Node
* Merge2 - Merge Node - On Create
* Merge3 - Merge Node - On Match
* Merge4 - Merge Node - On Match and On Create
* Merge5 - Merge relationships
* Merge6 - Merge Relationships - On Create
* Merge7 - Merge Relationships - On Match
* Merge8 - Merge Relationships - On Match and On Create

=== Remove

* Remove1 - Remove a Property
* Remove2 - Remove a Label

=== Set

* Set1 - Set a Property
* Set2 - Set a Property to Null
* Set3 - Set a Label
* Set4 - Set All Properties with a Map
* Set5 - Set Multiple Properties with a Map

=== Union

* Union1 - Union
* Union2 - Union All
* Union3 - Union in combination with Union All

=== Unwind

* Unwind1

=== With

* With1 - Forward single variable
* With2 - Forward single expression
* With3 - Forward multiple expressions
* With4 - Variable aliasing
* With5 - Implicit grouping with DISTINCT
* With6 - Implicit grouping with aggregates
* With7 - WITH on WITH

== Expressions


=== Aggregation

* Aggregation1 - Count
* Aggregation2 - Min and Max
* Aggregation3 - Sum
* Aggregation6 - Percentiles
* Aggregation8 - DISTINCT

=== Boolean

* Boolean4 - NOT logical operations

=== Comparison

* Comparison1 - Equality
* Comparison2 - Half-bounded Range
* Comparison3 - Full-Bound Range
* Comparison4 - Combination of Comparisons

=== Conditional

* Conditional1 - Coalesce Expression

=== Graph

* Graph10 - Retrieve all properties as a property map
* Graph3 - Node labels
* Graph4 - Edge relationship type
* Graph5 - Node and edge label expressions
* Graph6 - Static property access
* Graph7 - Dynamic property access
* Graph8 - Property keys function
* Graph9 - Property existence check

=== List

* List1 - Dynamic Element Access
* List11 - Create a list for a range - `range()` function
* List12 - List Comprehension
* List2 - List Slicing
* List3 - List Equality
* List4 - List Concatenation
* List5 - List Membership Validation - IN Operator
* List6 - List size
* List9 - List Tail

=== Literals

* Literals1 - Boolean and Null
* Literals2 - Decimal integer
* Literals3 - Hexadecimal integer
* Literals4 - Octal integer
* Literals5 - Float
* Literals6 - String
* Literals7 - List
* Literals8 - Maps

=== Map

* Map1 - Static value access
* Map2 - Dynamic Value Access
* Map3 - Keys function
* Map4 - Field existence check

=== Mathematical

* Mathematical11 - SignedNumbersFunctions
* Mathematical13 - SquareRoot
* Mathematical2 - Addition
* Mathematical3 - Subtraction
* Mathematical8 - ArithmeticPrecedence

=== Null

* Null1 - IS NULL validation
* Null2 - IS NOT NULL validation
* Null2 - Null evaluation

=== Path

* Path1 - Nodes of a path
* Path2 - Relationships of a path
* Path3 - Length of a path

=== Pattern

* Pattern3 - Pattern Comprehension

=== String

* String1 - Substring extraction
* String10 - Exact Substring Search
* String11 - Combining Exact String Search
* String3 - String Reversal
* String4 - String Splitting
* String8 - Exact String Prefix Search
* String9 - Exact String Suffix Search

=== Temporal

* Temporal1 - Create Temporal Values from a Map
* Temporal10 - Compute Durations Between two Temporal Values
* Temporal2 - Create Temporal Values from a String
* Temporal3 - Project Temporal Values from other Temporal Values
* Temporal4 - Store Temporal Values
* Temporal5 - Access Components of Temporal Values
* Temporal6 - Render Temporal Values as a String
* Temporal7 - Compare Temporal Values
* Temporal8 - Compute Arithmetic Operations on Temporal Values
* Temporal9 - Truncate Temporal Values

=== Type Conversion

* TypeConversion1 - To Boolean
* TypeConversion2 - To Integer
* TypeConversion3 - To Float
* TypeConversion4 - To String

== Use Cases


=== Triadic Selection

* TriadicSelection1 - Query three related nodes on binary-tree graphs