//unsafe class MapArray //{ // public int[] _a; // public Vector128<int>[] _v; // public MapArray(int n) // { // _a = new int[n]; // for(int i = 0; i < _a.Length; i++) _a[i] = i; // _v = new Vector128<int>[n]; // } // public void Move(int i) // { // int n = _a.Length - i - 1; // Array.Copy(_a, i, _a, i + 1, n); // //fixed(int* p = _a) Api.memmove(p + i + 1, p + 1, n * 4); //same speed // } // [MethodImpl(MethodImplOptions.AggressiveOptimization | MethodImplOptions.NoInlining)] // public void Inc(int i, int add) // { // //for(; i < _a.Length; i++) _a[i]+=add; // long add2 = add; add2 = add2 << 32 | add2; // fixed(int* ip = _a) { // var p = (long*)ip; // for(int n = _a.Length / 2; i < n; i++) { // //var v = p[i]; // p[i] += add2; // } // } // //var va = Vector128.Create(add); // //for(; i < _v.Length; i++) { // // _v[i]=Sse2.Add(_v[i], va); // //} // } // //public void Insert(int i, int add) // //{ // // for(; i < _a.Length; i++) _a[i]+=add; // //} // public void AOutput.WriteVector() // { // AOutput.Write(_a); // //for(int i=0; i < _v.Length; i++) { // // AOutput.Write(_v[i].GetElement(0), _v[i].GetElement(1), _v[i].GetElement(2), _v[i].GetElement(3)); // //} // } //} //class JSettings //{ // public string OneTwo { get; set; } // public int ThreeFour { get; set; } // public int Five { get; set; } // public bool Six { get; set; } // public string Seven { get; set; } // public string Eight { get; set; } = "def"; //} //void TestJson() //{ // var file = @"Q:\test\sett.json"; // var file2 = @"Q:\test\sett.xml"; // var v = new JSettings { OneTwo = "text ąčę", ThreeFour = 100 }; // for(int i = 0; i < 5; i++) { // //100.ms(); // //APerf.First(); // //var k1 = new JsonSerializerOptions { IgnoreNullValues = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true }; // //var b1 = JsonSerializer.SerializeToUtf8Bytes(v, k1); // //APerf.Next(); // //File.WriteAllBytes(file, b1); // //APerf.NW(); // 100.ms(); // APerf.First(); // var b2 = File.ReadAllBytes(file); // APerf.Next(); // var k2 = new JsonSerializerOptions { IgnoreNullValues = true }; // APerf.Next(); // v = JsonSerializer.Deserialize<JSettings>(b2, k2); // APerf.NW('J'); // } // for(int i = 0; i < 5; i++) { // //100.ms(); // //APerf.First(); // //var r1 = new XElement("r"); // //r1.Add(new XElement("OneTwo", v.OneTwo)); // //r1.Add(new XElement("ThreeFour", v.ThreeFour.ToString())); // //APerf.Next(); // //r1.Save(file2); // //APerf.NW(); // 100.ms(); // APerf.First(); // var r2 = XElement.Load(file2); // APerf.Next(); // v = new JSettings(); // v.OneTwo = r2.Element("OneTwo").Value; // var s2 = r2.Element("ThreeFour").Value; // APerf.NW('X'); // v.ThreeFour = s2.ToInt(); // } // AOutput.Write(v.OneTwo, v.ThreeFour, v.Five, v.Six, v.Seven, v.Eight); // //JsonDocument d; d.RootElement. //} //[DllImport("CppE")] //static extern int Cpp_Install(int step, string dir); //[DllImport("CppE")] //static extern int Cpp_Uninstall(); void TestMenu() { var m = new AMenu(); m["One"] = o => AOutput.Write(o); m["Two"] = o => AOutput.Write(o); m.LazySubmenu("Submenu 1", _ => { AOutput.Write("adding items of " + m.CurrentAddMenu.OwnerItem); m["Three"] = o => AOutput.Write(o); m["Four"] = o => AOutput.Write(o); m.LazySubmenu("Submenu 2", _ => { AOutput.Write("adding items of " + m.CurrentAddMenu.OwnerItem); m["Five"] = o => AOutput.Write(o); m["Six"] = o => AOutput.Write(o); }); m["Seven"] = o => AOutput.Write(o); }); m["Eight"] = o => AOutput.Write(o); m.Show(); }