public static void RandomlyChangeParameterInTwoCollections <T1, T2, U>(Func <IActiveList <T1>, IActiveList <T2>, IActiveValue <IntegerTestClass>, IActiveList <U> > activeExpression, Func <IReadOnlyList <T1>, IReadOnlyList <T2>, IntegerTestClass, IEnumerable <U> > linqExpression, Func <T1> randomValueGenerator1, Func <T2> randomValueGenerator2, bool useSetComparison = false, Func <U, object> keySelector = null) { RandomGenerator.ResetRandomGenerator(); var list1 = new ObservableList <T1>(); var list2 = new ObservableList <T2>(); foreach (var value in Enumerable.Range(0, 100)) { list1.Add(list1.Count, randomValueGenerator1.Invoke()); list2.Add(list2.Count, randomValueGenerator2.Invoke()); } var parameter = new ActiveValue <IntegerTestClass>() { Value = new IntegerTestClass() { Property = 1 } }; var sut = activeExpression.Invoke(list1.ToActiveList(), list2.ToActiveList(), parameter); var watcher = new CollectionSynchronizationWatcher <U>(sut); var validator = new LinqValidator <T1, T2, U>(list1, list2, sut, (l1, l2) => linqExpression.Invoke(l1, l2, parameter.Value), useSetComparison, keySelector); foreach (var value in Enumerable.Range(0, 30)) { parameter.Value.Property = RandomGenerator.GenerateRandomInteger(1, 11); validator.Validate(); } }
public static void RandomlyChangeParameter <T, U>(Func <IActiveList <T>, IActiveValue <IntegerTestClass>, IActiveValue <U> > activeExpression, Func <IReadOnlyList <T>, IntegerTestClass, U> linqExpression, Func <T> randomValueGenerator, Func <int> parameterRandomValueGenerator, Func <U, U, bool> comparer = null) { RandomGenerator.ResetRandomGenerator(); var list = new ObservableList <T>(); foreach (var value in Enumerable.Range(0, 100)) { list.Add(list.Count, randomValueGenerator.Invoke()); } var parameter = new ActiveValue <IntegerTestClass>() { Value = new IntegerTestClass() { Property = 1 } }; var sut = activeExpression.Invoke(list.ToActiveList(), parameter); foreach (var value in Enumerable.Range(0, 30)) { parameter.Value.Property = parameterRandomValueGenerator.Invoke(); ValidateResult(sut, linqExpression.Invoke(list, parameter.Value), comparer); } }
public static void RandomlyChangeParameter <T, U>(Func <IActiveList <T>, IActiveValue <IntegerTestClass>, IActiveList <U> > activeExpression, Func <IReadOnlyList <T>, IntegerTestClass, IEnumerable <U> > linqExpression, Func <T> randomValueGenerator, bool useSetComparison = false, Func <U, object> keySelector = null, Func <U, U, bool> additonalComparer = null) { RandomGenerator.ResetRandomGenerator(); var list = new ObservableList <T>(); foreach (var value in Enumerable.Range(0, 100)) { list.Add(list.Count, randomValueGenerator.Invoke()); } var parameter = new ActiveValue <IntegerTestClass>() { Value = new IntegerTestClass() { Property = 1 } }; var sut = activeExpression.Invoke(list.ToActiveList(), parameter); var watcher = new CollectionSynchronizationWatcher <U>(sut); var validator = new LinqValidator <T, T, U>(list, sut, l => linqExpression.Invoke(l, parameter.Value), useSetComparison, keySelector, additonalComparer); foreach (var value in Enumerable.Range(0, 30)) { parameter.Value.Property = RandomGenerator.GenerateRandomInteger(1, 11); validator.Validate(); } }
public void EqualInitially() { var value = new ActiveValue <IEnumerable <int> >(new[] { 1, 2, 3 }); var sut = value.ToActiveList().ActiveTranslateResetNotifications(); Assert.True(value.Value.SequenceEqual(sut)); }
public void ExecutesImmediately() { var value = ActiveValue.Create(new IntegerTestClass()); var sut = value.ActiveDo(o => o.SetProperty(10)); Assert.Equal(10, sut.Value.Property); }
public void InitialValueIsCorrect() { var value = ActiveValue.Create(10); var sut = value.ActiveAggregate(1, (currentValue, newValue) => currentValue + newValue); Assert.Equal(11, sut.Value); }
public IEnumerable <IntegratedReport> Read(SqlConnection connection, Version platformVersion) { var components = new List <IntegratedReport>(); var query = this.GetIntegratedReportQuery(platformVersion); if (string.IsNullOrEmpty(query)) { return(components); } var command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var integratedReport = new IntegratedReport { Name = reader["Name"] as string, Title = reader["Title"] as string, Viewer = reader["Viewer"] as string }; if (ActiveValue.Equals(reader["State"] as string)) { integratedReport.State = ComponentState.Active; } else { integratedReport.State = ComponentState.Closed; } integratedReport.CalculationText = reader["CalculationText"] as string; if (integratedReport.CalculationText == null) { integratedReport.CalculationText = string.Empty; } if (reader["TemplateText"] is byte[] templateValue) { integratedReport.TemplateText = Encoding.GetEncoding(1251).GetString(templateValue); } else { integratedReport.TemplateText = string.Empty; } integratedReport.ReferenceName = reader["ReferenceName"] as string; components.Add(integratedReport); } } } return(components); }
public void AddMultiple() { var value = new ActiveValue <IEnumerable <int> >(new[] { 1, 2, 4, 6, 7, 8 }); var sut = value.ToActiveList().ActiveTranslateResetNotifications(); value.Value = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Assert.True(value.Value.SequenceEqual(sut)); }
public void AddWithDuplicates() { var value = new ActiveValue <IEnumerable <int> >(new[] { 1, 1, 2 }); var sut = value.ToActiveList().ActiveTranslateResetNotifications(); value.Value = new[] { 0, 0, 1, 1, 1, 2, 2 }; Assert.True(value.Value.SequenceEqual(sut)); }
public void RemoveAll() { var value = new ActiveValue <IEnumerable <int> >(new[] { 0 }); var sut = value.ToActiveList().ActiveTranslateResetNotifications(); value.Value = new int[0]; Assert.True(value.Value.SequenceEqual(sut)); }
public void InsertInMiddle() { var value = new ActiveValue <IEnumerable <int> >(new[] { 1, 2, 4, 5 }); var sut = value.ToActiveList().ActiveTranslateResetNotifications(); value.Value = new[] { 1, 2, 3, 4, 5 }; Assert.True(value.Value.SequenceEqual(sut)); }
public void ExecutesOnValuePropertyChange() { var value = ActiveValue.Create(new IntegerTestClass()); var sut = value.ActiveDo(o => o.SetProperty(o.Key)); value.Value.Key = 10; Assert.Equal(10, sut.Value.Property); }
public IEnumerable <RouteBlock> Read(SqlConnection connection, Version platformVersion) { var components = new List <RouteBlock>(); var query = this.GetRouteBlockQuery(platformVersion); if (string.IsNullOrEmpty(query)) { return(components); } var command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var routeBlock = new RouteBlock { Name = reader["Name"] as string, Title = reader["Title"] as string }; if (ActiveValue.Equals(reader["State"] as string)) { routeBlock.State = ComponentState.Active; } else { routeBlock.State = ComponentState.Closed; } if (Enum.TryParse(reader["BaseBlockType"] as string, out RouteBlockType blockType)) { routeBlock.BaseBlockType = blockType; } else { routeBlock.BaseBlockType = RouteBlockType.Unknown; } if (reader["Properties"] is byte[] blockDescriptionRawData) { var blockDescription = Encoding.GetEncoding(1251).GetString(blockDescriptionRawData); if (!string.IsNullOrWhiteSpace(blockDescription)) { var description = WorkflowDescriptionParser.Parse(blockDescription); routeBlock.WorkflowBlock = description.Blocks.FirstOrDefault(); } } components.Add(routeBlock); } } } return(components); }
private static void GenerateFileForMySql() { var active = new ActiveValue { Id = 1, RecordId = 1, RecordIndex = 0, RecordTimeTicks = DateTime.Now.Ticks, Voltage_AN = 221.51, Voltage_BN = 222.15, Voltage_CN = 218.50, Voltage_NG = 1.25, Current_A = 13.56, Current_B = 15.64, Current_C = 16.44, Frequency = 50.125 }; var props = typeof(ActiveValue).GetProperties(); using (var file = File.CreateText("d:\\power_activeValues.txt")) { for (var i = 0; i < 345600; i++) { foreach (var t in props) { if ((!t.PropertyType.IsPrimitive && t.PropertyType != typeof(Guid)) || t.Name == "RecordTime" || t.Name == "ModelState" || t.Name == "IsNew") { continue; } string value; //Debug.Write($"{props[j].Name}\r\n"); if (t.PropertyType == typeof(bool)) { value = (bool)t.GetValue(active) ? "1" : "0"; } else { value = t.GetValue(active).ToString(); } file.Write(value); if (t.Name != "HasSurge") { file.Write("\t"); } } active.Id++; active.RecordIndex++; file.Write("\r\n"); } } }
public void ExecutesOnParameterPropertyChange() { var value = ActiveValue.Create(new IntegerTestClass()); var parameter = ActiveValue.Create(new IntegerTestClass()); var sut = value.ActiveDo(parameter, (o, p) => o.SetProperty(p.Property)); parameter.Value.Property = 10; Assert.Equal(10, sut.Value.Property); }
public void ValueTypeIsNull() { var value = ActiveValue.Create <TypeBase>(null); var sut = value.ActiveCastOrDefault <TypeA>(); Assert.Null(sut.Value); value.Value = new TypeA(); Assert.Equal(value.Value, sut.Value); }
public void ValueTypeIsCorrectAndThenIncorrect() { var value = ActiveValue.Create <TypeBase>(new TypeA()); var sut = value.ActiveCastOrDefault <TypeB>(); Assert.Null(sut.Value); value.Value = new TypeB(); Assert.Equal(value.Value, sut.Value); }
private void button4_Click(object sender, EventArgs e) { // operation = "*"; if (!(sender is Button)) { return; } var button = (Button)sender; operation = button.Text; active = ActiveValue.v2; }
public void StartListInActiveValueAsNull() { RandomGenerator.ResetRandomGenerator(); var value = new ActiveValue <IEnumerable <int> >(); value.Value = null; var sut = value.ToActiveList(); Assert.True(sut.SequenceEqual(new int[0])); }
public void SkipCountAndIncreaseSkip() { int raisedCount = 0; var skipCount = ActiveValue.Create(3); var list = ActiveList.Create(new[] { 1, 2, 3 }); var sut = list.ActiveSkip(skipCount); sut.CollectionChanged += (s, e) => ++ raisedCount; skipCount.Value = 4; Assert.Equal(0, raisedCount); }
public void SkipLessThanCountAndDecreaseSkip() { int raisedCount = 0; var skipCount = ActiveValue.Create(2); var list = ActiveList.Create(new[] { 1, 2, 3 }); var sut = list.ActiveSkip(skipCount); sut.CollectionChanged += (s, e) => raisedCount += e.Action == NotifyCollectionChangedAction.Add ? 1 : 0; skipCount.Value = 1; Assert.Equal(1, raisedCount); }
public void TakeLessThanCountAndDecreaseTake() { int raisedCount = 0; var takeCount = ActiveValue.Create(2); var list = ActiveList.Create(new[] { 1, 2, 3 }); var sut = list.ActiveTake(takeCount); sut.CollectionChanged += (s, e) => raisedCount += e.Action == NotifyCollectionChangedAction.Remove ? 1 : 0; takeCount.Value = 1; Assert.Equal(1, raisedCount); }
public void TakeMoreThanCountAndDecreaseTake() { int raisedCount = 0; var takeCount = ActiveValue.Create(4); var list = ActiveList.Create(new[] { 1, 2, 3 }); var sut = list.ActiveTake(takeCount); sut.CollectionChanged += (s, e) => ++ raisedCount; takeCount.Value = 3; Assert.Equal(0, raisedCount); }
public IEnumerable <Wizard> Read(SqlConnection connection, Version platformVersion) { var components = new List <Wizard>(); var query = this.GetWizardsQuery(platformVersion); if (string.IsNullOrEmpty(query)) { return(components); } var command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var wizard = new Wizard { Name = (reader["Name"] as string).Trim(), Title = (reader["Title"] as string).Trim() }; if (ActiveValue.Equals(reader["State"] as string)) { wizard.State = ComponentState.Active; } else { wizard.State = ComponentState.Closed; } if (reader["WizardDfm"] is byte[] wizardDfmRawData) { var wizardDfm = Encoding.GetEncoding(1251).GetString(wizardDfmRawData); if (!string.IsNullOrWhiteSpace(wizardDfm)) { var dfmWizard = WizardDfmParser.Parse(wizardDfm); if (dfmWizard != null) { wizard.Events.AddRange(dfmWizard.Events); wizard.Steps.AddRange(dfmWizard.Steps); } } } components.Add(wizard); } } } return(components); }
public void ReplaceListInActiveValueWithNull() { RandomGenerator.ResetRandomGenerator(); var value = new ActiveValue <IEnumerable <int> >(); value.Value = RandomGenerator.GenerateRandomIntegerList(50); var sut = value.ToActiveList(); value.Value = null; Assert.True(sut.SequenceEqual(new int[0])); }
public void WhereActiveValue() { var value = ActiveValue.Create(false); var sut = new object[] { null } .ToActiveList() .ActiveWhere(_ => value) .ActiveAny(); Assert.False(sut.Value); value.Value = true; Assert.True(sut.Value); }
public void ObservableTriggersOnChange() { var value = new ActiveValue <int>(); var observedValue = value.Value; var sut = value.ObserveValue(); sut.Subscribe(i => observedValue = i); value.Value = 20; Assert.Equal(value.Value, observedValue); }
public void SelectActiveValue() { var value = ActiveValue.Create(false); var sut = new object[] { null } .ToActiveList() .ActiveSelect(_ => value) .ActiveAny(b => b); Assert.False(sut.Value); value.Value = true; Assert.True(sut.Value); }
public void ChangeParameterValueToMakeEqual() { var parameter = new ActiveValue <IntegerTestClass>(new IntegerTestClass() { Property = 1 }); CreateLists(out IActiveValue <bool> sut, out Func <bool> linq, out ObservableList <IntegerTestClass> listOne, out ObservableList <IntegerTestClass> listTwo, new[] { 2, 4, 6 }, new[] { 1, 2, 3 }, parameter); Assert.Equal(sut.Value, linq.Invoke()); parameter.Value.Property = 2; Assert.Equal(sut.Value, linq.Invoke()); }
public void UpdatesOnSourceChange() { var value = ActiveValue.Create(0); var sut = value.ActiveAggregate(0, (currentValue, newValue) => currentValue + newValue); Assert.Equal(0, sut.Value); value.Value = 10; Assert.Equal(10, sut.Value); value.Value = 5; Assert.Equal(15, sut.Value); }