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); } } }
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) ); } } }
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); } }
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")); } }
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 } }
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()); } } }
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()); } } }
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); } } }
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); } }
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 } }
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) ); } }
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; } }
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)); } } }
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(); } }
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()); } }
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) ); } }
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) ); } }
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)); } }
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)); } }