  Causality testing, the act of determining cause and effect from measurements,
is widely used in physics, climatology, neuroscience, econometrics and other
disciplines. As a result, a large number of causality testing methods based on
various principles have been developed. Causal relationships in complex systems
are typically accompanied by entropic exchanges which are encoded in patterns
of dynamical measurements. A data compression algorithm which can extract these
encoded patterns could be used for inferring these relations. This motivates us
to propose, for the first time, a generic causality testing framework based on
data compression. The framework unifies existing causality testing methods and
enables us to innovate a novel Compression-Complexity Causality measure. This
measure is rigorously tested on simulated and real-world time series and is
found to overcome the limitations of Granger Causality and Transfer Entropy,
especially for noisy and non-synchronous measurements. Additionally, it gives
insight on the `kind' of causal influence between input time series by the
notions of positive and negative causality.
