public bool Equals(NTuple <T> other) { if (ReferenceEquals(this, other)) { return(true); } if (other == null) { return(false); } var length = _values.Length; if (length != other._values.Length) { return(false); } for (var i = 0; i < length; ++i) { if (!Equals(_values[i], other._values[i])) { return(false); } } return(true); }
static void convertOth(String inputFilename, String outputFilename) { var fileTxt = File.ReadAllText(inputFilename); var array = fileTxt.Split(new[] { ' ', '\n', '\r', '{', '}' }, StringSplitOptions.RemoveEmptyEntries); int index = 0; var nTuples = Convert.ToInt32(array[index++]); List<NTuple> list = new List<NTuple>(); for (int i = 0; i < nTuples; i++) { int n = Convert.ToInt32(array[index++]); int m = Convert.ToInt32(array[index++]); var tuple = new NTuple(n, m); for (int seq = 0; seq < m; seq++) { var fields = tuple.getNewFieldsList(); for (int fieled = 0; fieled < n; fieled++) { var val = array[index++]; fields.Add(convertToBoard(Convert.ToInt32(val))); } } for (int weight = 0; weight < tuple.getNumberOfWeights(); weight++) { var val = array[index++]; double value = 0; try { value = Convert.ToDouble(val); } catch { value = Convert.ToDouble(val.Replace(".", ",")); } tuple.weights.Add(value); } if (!tuple.check()) throw new Exception("Niepoprawny NTuple!"); list.Add(tuple); } using (var output = new BinaryWriter(new FileStream(outputFilename, FileMode.Create))) { // format pliku output.Write((int)0); int nF = 0; int nW = 0; int nT = 0; var fieldsMove = new List<int>(); var weightsMove = new List<int>(); weightsMove.Add(0); fieldsMove.Add(0); for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int j = 0; j < t.m; j++) { fieldsMove.Add(fieldsMove[fieldsMove.Count - 1] + t.n); nF += t.n; } weightsMove.Add(weightsMove[weightsMove.Count - 1] + t.getNumberOfWeights()); nW += t.getNumberOfWeights(); nT += t.m; } output.Write(nF); output.Write(nW); output.Write(nT); for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int j = 0; j < t.m; j++) for (int k = 0; k < t.n; k++) output.Write(t.fields[j][k]); } for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int k = 0; k < t.getNumberOfWeights(); k++) output.Write(t.weights[k]); } index = 0; for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int j = 0; j < t.m; j++) { output.Write(t.n); output.Write(fieldsMove[index]); output.Write(weightsMove[i]); index++; } } } }
static void convertOth(String inputFilename, String outputFilename) { var fileTxt = File.ReadAllText(inputFilename); var array = fileTxt.Split(new[] { ' ', '\n', '\r', '{', '}' }, StringSplitOptions.RemoveEmptyEntries); int index = 0; var nTuples = Convert.ToInt32(array[index++]); List <NTuple> list = new List <NTuple>(); for (int i = 0; i < nTuples; i++) { int n = Convert.ToInt32(array[index++]); int m = Convert.ToInt32(array[index++]); var tuple = new NTuple(n, m); for (int seq = 0; seq < m; seq++) { var fields = tuple.getNewFieldsList(); for (int fieled = 0; fieled < n; fieled++) { var val = array[index++]; fields.Add(convertToBoard(Convert.ToInt32(val))); } } for (int weight = 0; weight < tuple.getNumberOfWeights(); weight++) { var val = array[index++]; double value = 0; try { value = Convert.ToDouble(val); } catch { value = Convert.ToDouble(val.Replace(".", ",")); } tuple.weights.Add(value); } if (!tuple.check()) { throw new Exception("Niepoprawny NTuple!"); } list.Add(tuple); } using (var output = new BinaryWriter(new FileStream(outputFilename, FileMode.Create))) { // format pliku output.Write((int)0); int nF = 0; int nW = 0; int nT = 0; var fieldsMove = new List <int>(); var weightsMove = new List <int>(); weightsMove.Add(0); fieldsMove.Add(0); for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int j = 0; j < t.m; j++) { fieldsMove.Add(fieldsMove[fieldsMove.Count - 1] + t.n); nF += t.n; } weightsMove.Add(weightsMove[weightsMove.Count - 1] + t.getNumberOfWeights()); nW += t.getNumberOfWeights(); nT += t.m; } output.Write(nF); output.Write(nW); output.Write(nT); for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int j = 0; j < t.m; j++) { for (int k = 0; k < t.n; k++) { output.Write(t.fields[j][k]); } } } for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int k = 0; k < t.getNumberOfWeights(); k++) { output.Write(t.weights[k]); } } index = 0; for (int i = 0; i < list.Count; i++) { var t = list[i]; for (int j = 0; j < t.m; j++) { output.Write(t.n); output.Write(fieldsMove[index]); output.Write(weightsMove[i]); index++; } } } }