Implementation [of conserved quantity test]
Whether a k-color cellular automaton with range r conserves total cell value can be determined from
Catch[Do[(If[Apply[Plus, CAStep[rule, #] - #] ≠ 0, Throw[False]] &)[IntegerDigits[i, k, m]], {m, w}, {i, 0, km - 1}]; True]
where w can be taken to be k2r, and perhaps smaller. Among the 256 elementary cellular automata just 5 conserve total cell value. Among the 232 k = 2, r = 2 rules 428 do, and of these 2 are symmetric, and 6 are reversible, and all these are just shift and identity rules.