Ejemplo n.º 1
0
        private static bool CompareHydrometData(TextFile a, TextFile b)
        {
            int idx1 = a.IndexOf("BEGIN DATA");

            a.DeleteLines(0, idx1);
            int idx2 = a.IndexOf("END DATA");

            a.DeleteLines(idx2, a.Length - 1);

            idx1 = b.IndexOf("BEGIN DATA");
            b.DeleteLines(0, idx1);
            idx2 = b.IndexOf("END DATA");
            b.DeleteLines(idx2, b.Length - 1);



            if (a.Length != b.Length)
            {
                return(false);
            }

            for (int i = 0; i < a.Length; i++)
            {
                var x = a[i].Split(',');
                var y = b[i].Split(',');

                if (x.Length != y.Length)
                {
                    return(false);
                }

                for (int j = 0; j < x.Length; j++)
                {
                    if (i == 0) // cbtt parameter
                    {           // allow different spacing
                        // 'jck fb'   or 'jck     fb'
                        RegexOptions options = RegexOptions.None;
                        Regex        regex   = new Regex("[ ]{2,}", options);

                        x[j] = regex.Replace(x[j], " ");
                        y[j] = regex.Replace(y[j], " ");
                    }
                    if (x[j].Trim() != y[j].Trim())
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        public void InstantCompareLinuxToVMSCGI()
        {
            //http://www.usbr.gov/pn-bin/webdaycsv.pl?parameter=mddo%20ch,wcao%20q&syer=2015&smnth=4&sdy=5&eyer=2015&emnth=4&edy=5&format=2
            string payload = "parameter=mddo ch,wcao q,boii Z,boii ob,&syer=2015&smnth=10&sdy=30&eyer=2015&emnth=11&edy=4&format=2";
            //Program.Main(new string[] { "--cgi=instant", "--payload=?"+payload });

            TimeSeriesDatabase  db = TimeSeriesDatabase.InitDatabase(new Arguments(new string[] {}));
            CsvTimeSeriesWriter c  = new CsvTimeSeriesWriter(db);
            var fn = FileUtility.GetTempFileName(".txt");

            c.Run(TimeInterval.Hourly, payload, fn);

            TextFile tf = new TextFile(fn);

            tf.DeleteLines(0, 1);

            var fnhyd0 = FileUtility.GetTempFileName(".txt");

            Web.GetFile("http://www.usbr.gov/pn-bin/webdaycsv.pl?" + payload, fnhyd0);

            var tf2  = new TextFile(fnhyd0);
            var diff = TextFile.Compare(tf, tf2);

            if (diff.Length > 0)
            {
                for (int i = 0; i < tf.Length; i++)
                {
                    Console.WriteLine(tf[i]);
                }
            }
            Assert.IsTrue(diff.Length == 0);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Compares data in two usgs rdb files, ignoring comments at the beginning
        /// </summary>
        /// <param name="tf1"></param>
        /// <param name="tf2"></param>
        /// <returns>true if there are differences in the data</returns>
        public static bool Diff(TextFile tf1, TextFile tf2)
        {
            var diff = System.Math.Abs(tf1.Length - tf2.Length);

            if (diff > 5)
            {
                Logger.WriteLine("difference in length of files: " + diff);
                return(true); //different number of lines in file
            }

            var idx1 = tf1.IndexOfRegex(@"^INDEP\s*SHIFT\s*DEP\s*STOR");
            var idx2 = tf2.IndexOfRegex(@"^INDEP\s*SHIFT\s*DEP\s*STOR");

            tf1.DeleteLines(0, idx1);
            tf2.DeleteLines(0, idx2);

            return(TextFile.Compare(tf1, tf2).Length != 0);
        }
Ejemplo n.º 4
0
        public static void CompareLinuxToVMSCGI(string payload, TimeInterval interval = TimeInterval.Irregular)
        {
            //Program.Main(new string[] { "--cgi=instant", "--payload=?"+payload });

            TimeSeriesDatabase  db = TimeSeriesDatabase.InitDatabase(new Arguments(new string[] {}));
            WebTimeSeriesWriter c  = new WebTimeSeriesWriter(db, interval, payload);
            var fn = FileUtility.GetTempFileName(".txt");

            Console.WriteLine("linux temp file:" + fn);
            c.Run(fn);

            TextFile tf = new TextFile(fn);

            tf.DeleteLines(0, 1);

            var fnhyd0 = FileUtility.GetTempFileName(".txt");

            Console.WriteLine("vms temp file:" + fnhyd0);
            string url = "http://www.usbr.gov/pn-bin/webarccsv.pl?";

            if (interval == TimeInterval.Irregular || interval == TimeInterval.Hourly)
            {
                url = "http://www.usbr.gov/pn-bin/webdaycsv.pl?";
            }
            Web.GetFile(url + payload, fnhyd0);

            var tf2 = new TextFile(fnhyd0);

            if (!CompareHydrometData(tf, tf2))
            {
                // do detailed comparision.
                var diff = TextFile.Compare(tf, tf2);

                if (diff.Length > 0)
                {
                    for (int i = 0; i < tf.Length; i++)
                    {
                        Console.WriteLine(tf[i]);
                    }
                }
                Assert.IsTrue(diff.Length == 0);
            }
        }