Пример #1
0
        public void Install_1()
        {
            var source = ManifestUtilsTests.Get_TEZT_PATH();
            var target = source+"_INSTALLED";

            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var sourceDir = session[source] as FileSystemDirectory;

              var manifest = ManifestUtils.GeneratePackagingManifest(sourceDir, packageName: "Package1");
              var fn = Path.Combine(source, ManifestUtils.MANIFEST_FILE_NAME);
              try
              {
                  manifest.Configuration.ToLaconicFile(fn);

                  var set = new List<LocalInstallation.PackageInfo>
                  {
                      new LocalInstallation.PackageInfo("Package1", sourceDir, null)//no relative path
                  };

                  using(var install = new LocalInstallation(target))
                  {
                    Console.WriteLine("Installed anew: "+ install.CheckLocalAndInstallIfNeeded(set));
                  }
              }
              finally
              {
                IOMiscUtils.EnsureFileEventuallyDeleted(fn);
              }

            }
        }
Пример #2
0
        public void DeepCopy_1()
        {
            var p1 = ManifestUtilsTests.Get_TEZT_PATH();
            var p2 = p1+"_2";

            IOMiscUtils.EnsureDirectoryDeleted(p2);
            Directory.CreateDirectory(p2);

            using(var fs = new LocalFileSystem("L1"))
            {
              using(var session = fs.StartSession())
              {
                var fromDir = session[p1] as FileSystemDirectory;
                var manifest1 = ManifestUtils.GeneratePackagingManifest(fromDir);

                var toDir = session[p2] as FileSystemDirectory;

                fromDir.DeepCopyTo(toDir, FileSystemDirectory.DirCopyFlags.Directories | FileSystemDirectory.DirCopyFlags.Files);
                var manifest2 = ManifestUtils.GeneratePackagingManifest(toDir);

                Console.WriteLine(manifest1.Configuration.ContentView);

                Assert.IsTrue( ManifestUtils.HasTheSameContent(manifest1, manifest2) );
              }
            }
        }
Пример #3
0
        public void Connect_NavigateRootDir()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              Assert.AreEqual(@"c:\", dir.ParentPath);
              Assert.AreEqual(@"c:\NFX", dir.Path);
            }
        }
Пример #4
0
        public void CombinePaths()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              Assert.AreEqual(@"c:\a.txt", fs.CombinePaths(@"c:\",@"a.txt"));
              Assert.AreEqual(@"c:\a.txt", fs.CombinePaths(@"c:\",@"\a.txt"));

              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"books",@"fiction","saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"books",@"\fiction","saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"\books",@"\fiction",@"saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"\books",@"\fiction",@"\saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"books",@"fiction", @"\saga.pdf"));

              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"books\",@"fiction","saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"books\",@"\fiction","saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"\books\",@"\fiction",@"saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"\books\",@"\fiction",@"\saga.pdf"));
              Assert.AreEqual(@"c:\books\fiction\saga.pdf", fs.CombinePaths(@"c:\",@"books\",@"fiction", @"\saga.pdf"));

              Assert.AreEqual(@"\books\fiction\saga.pdf", fs.CombinePaths("",@"books",@"fiction", @"\saga.pdf"));
            }
        }
Пример #5
0
        public void Parallel_CreateWriteReadFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              System.Threading.Tasks.Parallel.For(PARALLEL_FROM, PARALLEL_TO,
               (i)=>
               {
                    var fn = FN_PARALLEL_MASK.Args(i);
                    var session = fs.StartSession();

                    var dir = session[LOCAL_ROOT] as FileSystemDirectory;

                    using (var file = dir.CreateFile(fn))
                    {
                      file.WriteAllText("Hello, {0}".Args(i));
                    }

                    using (var file = session[fs.CombinePaths(LOCAL_ROOT, fn)] as FileSystemFile)
                    {
                      Assert.AreEqual( "Hello, {0}".Args(i), file.ReadAllText());
                      file.Delete();
                    }
                    Assert.IsNull( session[fs.CombinePaths(LOCAL_ROOT, fn)] );

               });//Parallel.For

            }
        }
Пример #6
0
        public void CreateWriteReadFile_3()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              using (var file = dir.CreateFile(FN4))
              {
                file.WriteAllText("Hello,");
                file.WriteAllText("this will overwrite");
              }

              using (var file = session[fs.CombinePaths(LOCAL_ROOT, FN4)] as FileSystemFile)
              {
                Assert.AreEqual( "this will overwrite", file.ReadAllText());
              }
            }
        }
Пример #7
0
        public void CreateWriteReadFile_1()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              using (var file = dir.CreateFile(FN2))
              {
                var str = file.FileStream;

                var wri = new BinaryWriter(str);

                wri.Write( "Hello!" );
                wri.Write( true );
                wri.Write( 27.4d );
                wri.Close();
              }

              using (var file = session[fs.CombinePaths(LOCAL_ROOT, FN2)] as FileSystemFile)
              {
                var str = file.FileStream;

                var rdr = new BinaryReader(str);

                Assert.AreEqual( "Hello!", rdr.ReadString());
                Assert.AreEqual( true,     rdr.ReadBoolean());
                Assert.AreEqual( 27.4d,    rdr.ReadDouble());
              }
            }
        }
Пример #8
0
        public void CreateWriteCopyReadFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              using (var file = dir.CreateFile(FN2))
              {
                var str = file.FileStream;

                var wri = new BinaryWriter(str);

                wri.Write( "Hello!" );
                wri.Write( true );
                wri.Write( 27.4d );
                wri.Close();
              }

              //FN3 copied from FN2 and made readonly
              Assert.IsNotNull( dir.CreateFile(FN3, Path.Combine(LOCAL_ROOT, FN2), true) );

              using (var file = session[fs.CombinePaths(LOCAL_ROOT, FN3)] as FileSystemFile)
              {
                Assert.IsTrue( file.ReadOnly);
                Assert.IsTrue( file.IsReadOnly);

                var str = file.FileStream;

                var rdr = new BinaryReader(str);

                Assert.AreEqual( "Hello!", rdr.ReadString());
                Assert.AreEqual( true,     rdr.ReadBoolean());
                Assert.AreEqual( 27.4d,    rdr.ReadDouble());

                file.ReadOnly = false;

                Assert.IsFalse( file.ReadOnly);
                Assert.IsFalse( file.IsReadOnly);

              }
            }
        }
Пример #9
0
        public void CreateFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              var file = dir.CreateFile(FN1, 1500);

              Assert.AreEqual(FN1, file.Name);

              Assert.IsTrue( File.Exists(file.Path));
              Assert.AreEqual(1500, new FileInfo(file.Path).Length);
              Assert.AreEqual(1500, file.FileStream.Length);
            }
        }
Пример #10
0
        public void CreateDirCreateFileDeleteDir()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;
             Assert.AreEqual(1, session.Items.Count());//checking item registation via .ctor/.dctor
              var dir2 = dir[DIR_1] as FileSystemDirectory;
              Assert.IsNull( dir2 );
             Assert.AreEqual(1, session.Items.Count());//checking item registation via .ctor/.dctor
              dir2 = dir.CreateDirectory(DIR_1);
             Assert.AreEqual(2, session.Items.Count());//checking item registation via .ctor/.dctor
              Assert.IsTrue( Directory.Exists(dir2.Path));

              Assert.AreEqual(DIR_1, dir2.Name);

              var f = dir2.CreateFile(FN1, 237);
            Assert.AreEqual(3, session.Items.Count());//checking item registation via .ctor/.dctor
              Assert.IsTrue( File.Exists(f.Path));

              Assert.AreEqual(237, dir2.Size);

              Assert.IsTrue( dir.SubDirectoryNames.Contains(DIR_1) );

              Assert.IsTrue( dir2.FileNames.Contains(FN1) );

              dir2.Delete();
            Assert.AreEqual(2, session.Items.Count());//checking item registation via .ctor/.dctor
              Assert.IsFalse( Directory.Exists(dir2.Path));
              Assert.IsFalse( File.Exists(f.Path));
            Assert.AreEqual(1, fs.Sessions.Count());//checking item registation via .ctor/.dctor
              session.Dispose();
            Assert.AreEqual(0, fs.Sessions.Count());//checking item registation via .ctor/.dctor
            Assert.AreEqual(0, session.Items.Count());//checking item registation via .ctor/.dctor
            }
        }
Пример #11
0
        public void Compare_2()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest1 = ManifestUtils.GeneratePackagingManifest(dir);
              var manifest2 = NFX.Environment.LaconicConfiguration.CreateFromString(EXPECTED).Root;

              Assert.IsTrue( manifest1.HasTheSameContent(manifest2) );
            }
        }
Пример #12
0
        private void btnSynthCandles_Click(object sender, EventArgs e)
        {
            using(var fs = new LocalFileSystem())
              {
            var sdb = new SecDBFileReader(fs, new FileSystemSessionConnectParams(), tbSecDBFile.Text);

            //var tradedata = sdb.GetAllStreamData()
            //                   .Where( s => s is SecDBFileReader.TradeSample)
            //                   .Cast<SecDBFileReader.TradeSample>()
            //                   .Select( t => new CandleSample(t.TimeStamp)
            //                                 {
            //                                   OpenPrice = t.Price,
            //                                   ClosePrice = t.Price,
            //                                   HighPrice = t.Price,
            //                                   LowPrice = t.Price
            //                                 }
            //                    );

            var data = sdb.GetAllStreamData().Where(s => s is SecDBFileReader.TradeSample).SynthesizeCandles(tbSecPeriod.Text.AsUInt(),
             (cs, qs, i) => {},
             (cs, ts, i) => // "Beautifier function"
              {
                if (i==0) cs.OpenPrice = ts.Price;
                cs.HighPrice = Math.Max(cs.HighPrice, ts.Price);
                cs.LowPrice  = cs.LowPrice!=0f ? Math.Min( cs.LowPrice , ts.Price) : ts.Price;
                cs.ClosePrice = ts.Price;

                if (ts.IsQty)
                {
                  if (ts.Side==SecDBFileReader.TradeSample.SideType.Buy)
                    cs.BuyVolume += ts.Qty;
                  else
                    cs.SellVolume += ts.Qty;
                }
              }
            );

            m_Data = new CandleTimeSeries("Candles", 0);

            m_Data.Views.Register(
            new CandleView("Candle View", 1)
            {
              ShowYLevels = true,
              ShowBalloons = true
            });

            //m_Data.Views.Register(
            //    new CandleMidLineView("MidLineHiLo", 1)
            //    {
            //      MidLineType = MidLineType.HighLow,
            //      LineStyle = new LineStyle{ Color = Color.FromArgb(200, 255, 0,0), Width = 2}
            //    });

            m_Data.Views.Register( new CandleBuySellView("BuySell", 2){} );

            data.ForEach( s =>  m_Data.Add( s ));

            m_Data.YLevels.Register( new TimeSeries.YLevel("Lo", 0){Value = m_Data.Data.Min(cs=>cs.ClosePrice), AffectsScale = true,  HLineStyle = new LineStyle{Color=Color.Red, Width =2}});
            m_Data.YLevels.Register( new TimeSeries.YLevel("Hi", 0){Value = m_Data.Data.Max(cs=>cs.ClosePrice), AffectsScale = true, HLineStyle = new LineStyle{Color=Color.Blue, Width =2}});

            chart.Series = m_Data;
              }
        }
Пример #13
0
        private void btnQuotes_Click(object sender, EventArgs e)
        {
            using(var fs = new LocalFileSystem())
              {
            var sdb = new SecDBFileReader(fs, new FileSystemSessionConnectParams(), tbSecDBFile.Text);

            Text = "Exchange: {0}, Origin time: {1}, {2}".Args(sdb.SystemHeader.Exchange,
                                                        sdb.SystemHeader.Date+sdb.SystemHeader.OriginLocalTimeOffset,
                                                        sdb.SystemHeader.OriginLocalTimeName);

            var sw = System.Diagnostics.Stopwatch.StartNew();

            var cnt = sdb.GetAllStreamData().Count( s => s is SecDBFileReader.SecondSample);
            var el = sw.ElapsedMilliseconds;

            MessageBox.Show("{0} samples in {1} msec at {2}/sec".Args(cnt, el, cnt / (el /1000d)));

            try
            {
             System.IO.File.WriteAllText(@"c:\Users\Anton\Desktop\SEC_DBDUMP.json", sdb.GetAllStreamData().Take(tbHowMany.Text.AsInt()).ToJSON( JSONWritingOptions.PrettyPrint) );
            }
            catch(Exception err)
            {
              MessageBox.Show("{0}\n------------\n{1}".Args(err.ToMessageWithType(), err.StackTrace));
            }
              }
        }
Пример #14
0
        private void btnLoadSecDB_Click(object sender, EventArgs e)
        {
            using(var fs = new LocalFileSystem())
              {
            var sdb = new SecDBFileReader(fs, new FileSystemSessionConnectParams(), tbSecDBFile.Text);

            Text = "Exchange: {0}, Origin time: {1}, {2}".Args(sdb.SystemHeader.Exchange,
                                                        sdb.SystemHeader.Date+sdb.SystemHeader.OriginLocalTimeOffset,
                                                        sdb.SystemHeader.OriginLocalTimeName);

            MessageBox.Show( sdb.Headers.ToJSON() );

            m_Data = new CandleTimeSeries("From file", 0);
            m_Data.YLevels.Register( new TimeSeries.YLevel("LAST_PRICE", 0){Value = 0f});//,  HLineStyle = new LineStyle{Color=Color.Red}});

            m_Data.Views.Register( new CandleView("Candles", 0){ ShowYLevels = true, ShowBalloons = true } );
            m_Data.Views.Register( new CandleBuySellView("BuySell", 0){} );

            m_Data.Views.Register(
            new CandleMidLineView("MidLineHiLo", 1)
            {
              MidLineType = MidLineType.HighLow,
              LineStyle = new LineStyle{ Color = Color.FromArgb(200, 255, 0,0), Width = 2}
            });

            m_Data.Views.Register(
            new CandleMidLineView("MidLineOpCl1", 2)
            {
              MidLineType = MidLineType.OpenClose,
              LineStyle = new LineStyle{ Color = Color.FromArgb(200, 50, 0, 200), Width = 1.5f, DashStyle = System.Drawing.Drawing2D.DashStyle.Dot}
            });

            m_Data.MaxSamples = 100000;

            var data = sdb.GetCandleDataAsCandleSamples( sdb.CandlesMetadata.Resolutions.Min() );

            data.ForEach( s =>  m_Data.Add( s ));

            m_Data.YLevels["LAST_PRICE"].Value = m_Data.DataReveresed.First().ClosePrice;
            m_Data.YLevels.Register( new TimeSeries.YLevel("Lo", 0){Value = m_Data.Data.Min(cs=>cs.LowPrice), AffectsScale = false,  HLineStyle = new LineStyle{Color=Color.Red, Width =2}});
            m_Data.YLevels.Register( new TimeSeries.YLevel("Hi", 0){Value = m_Data.Data.Max(cs=>cs.HighPrice), AffectsScale = false, HLineStyle = new LineStyle{Color=Color.Blue, Width =2}});

            m_Data.Views.Register( new CandleView("Candles2", 0, "MLPane"){ BlackWhite = true, ShowBalloons = true});
            m_Data.Views.Register(
            new CandleMidLineView("MidLineOpCl2", 1, "MLPane")
            {
              MidLineType = MidLineType.OpenClose,
              ShowYLevels = true,
              LineStyle = new LineStyle{ Color = Color.FromArgb(200, 255, 180, 0), Width = 3f}
            });

            chart.Series = m_Data;
            //chart.NotifySeriesChange();
              }
        }
Пример #15
0
        public void Generate_1()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest = ManifestUtils.GeneratePackagingManifest(dir);

              Console.WriteLine(manifest.Configuration.ContentView);

              Assert.AreEqual("SubDir1", manifest[0].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);
              Assert.AreEqual("SubDir2", manifest[1].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);
              Assert.AreEqual("Gagarin.txt", manifest[2].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);
              Assert.AreEqual("TextFile1.txt", manifest[3].AttrByName(ManifestUtils.CONFIG_NAME_ATTR).Value);

               Assert.AreEqual(500066, manifest[0].Children.First(c=>c.IsSameNameAttr("Bitmap1.bmp")).AttrByName(ManifestUtils.CONFIG_SIZE_ATTR).ValueAsInt());
               Assert.AreEqual(1248671023, manifest[0].Children.First(c=>c.IsSameNameAttr("Bitmap1.bmp")).AttrByName(ManifestUtils.CONFIG_CSUM_ATTR).ValueAsInt());

               Assert.AreEqual(105, manifest[0].Children.First(c=>c.IsSameNameAttr("Some Text File With Spaces.txt")).AttrByName(ManifestUtils.CONFIG_SIZE_ATTR).ValueAsInt());
               Assert.AreEqual(1399856254, manifest[0].Children.First(c=>c.IsSameNameAttr("Some Text File With Spaces.txt")).AttrByName(ManifestUtils.CONFIG_CSUM_ATTR).ValueAsInt());
            }
        }
Пример #16
0
        public void Compare_4()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest1 = ManifestUtils.GeneratePackagingManifest(dir);
              var manifest2 = ManifestUtils.GeneratePackagingManifest(dir);

              manifest2[2].Delete();

              Assert.IsFalse( manifest1.HasTheSameContent(manifest2) );
            }
        }
Пример #17
0
        public void Compare_3()
        {
            using(var fs = new LocalFileSystem("L1"))
            {
              var session = fs.StartSession();
              var dir = session[Get_TEZT_PATH()] as FileSystemDirectory;
              var manifest1 = ManifestUtils.GeneratePackagingManifest(dir);
              var manifest2 = ManifestUtils.GeneratePackagingManifest(dir);

              manifest2[0].Children.First(c=>c.IsSameNameAttr("Some Text File With Spaces.txt")).AttrByName(ManifestUtils.CONFIG_SIZE_ATTR).Value = "123";

              Assert.IsFalse( manifest1.HasTheSameContent(manifest2) );
            }
        }
Пример #18
0
        public void CreateDeleteDir()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              var dir2 = dir[DIR_1] as FileSystemDirectory;
              Assert.IsNull( dir2 );

              dir2 = dir.CreateDirectory(DIR_1);

              Assert.AreEqual(DIR_1, ((FileSystemDirectory)dir[DIR_1]).Name);

              Assert.AreEqual(DIR_1, ((FileSystemDirectory)dir2[""]).Name);

              Assert.IsTrue( Directory.Exists(dir2.Path));

              Assert.AreEqual(DIR_1, dir2.Name);

              dir2.Delete();
              Assert.IsFalse( Directory.Exists(dir2.Path));

            }
        }
Пример #19
0
        public void CreateDeleteFile()
        {
            using(var fs = new LocalFileSystem("L1"))
            {

              var session = fs.StartSession();

              var dir = session[LOCAL_ROOT] as FileSystemDirectory;

              var file = dir.CreateFile(FN1, 1500);

              Assert.AreEqual(FN1, file.Name);

              Assert.IsTrue( File.Exists(file.Path));
              Assert.AreEqual(1500, new FileInfo(file.Path).Length);
              Assert.AreEqual(1500, file.FileStream.Length);

              Assert.AreEqual(1500, file.Size);

              var file2 = session[fs.CombinePaths(LOCAL_ROOT, FN1)];
              Assert.IsNotNull( file2);
              Assert.IsTrue(file2 is FileSystemFile);
              Assert.AreEqual(FN1, ((FileSystemFile)file2).Name);

              file.Dispose();

              file2.Delete();
              Assert.IsFalse( File.Exists(file2.Path));
            }
        }