public DiffEngine() { _source = null; _dest = null; _matchList = null; _stateList = null; //_level = DiffEngineLevel.FastImperfect; }
//public double ProcessDiff(IDiffList source, IDiffList destination,DiffEngineLevel level) //{ // _level = level; // return ProcessDiff(source,destination); //} public double ProcessDiff(IDiffList source, IDiffList destination) { DateTime dt = DateTime.Now; _source = source; _dest = destination; _matchList = new List<DiffResultSpan>(); int dcount = _dest.Count(); int scount = _source.Count(); if ((dcount > 0)&&(scount > 0)) { _stateList = new DiffStateList(dcount); ProcessRange(0,dcount - 1,0, scount - 1); } TimeSpan ts = DateTime.Now - dt; return ts.TotalSeconds; }