# File lib/diff/lcs.rb, line 1075
1075:     def __normalize_patchset(patchset)
1076:       patchset.map do |hunk|
1077:         case hunk
1078:         when Diff::LCS::ContextChange, Diff::LCS::Change
1079:           hunk
1080:         when Array
1081:           if (not hunk[0].kind_of?(Array)) and hunk[1].kind_of?(Array) and hunk[2].kind_of?(Array)
1082:             Diff::LCS::ContextChange.from_a(hunk)
1083:           else
1084:             hunk.map do |change|
1085:               case change
1086:               when Diff::LCS::ContextChange, Diff::LCS::Change
1087:                 change
1088:               when Array
1089:                   # change[1] will ONLY be an array in a ContextChange#to_a call.
1090:                   # In Change#to_a, it represents the line (singular).
1091:                 if change[1].kind_of?(Array)
1092:                   Diff::LCS::ContextChange.from_a(change)
1093:                 else
1094:                   Diff::LCS::Change.from_a(change)
1095:                 end
1096:               end
1097:             end
1098:           end
1099:         else
1100:           raise ArgumentError, "Cannot normalise a hunk of class #{hunk.class}."
1101:         end
1102:       end.flatten
1103:     end