public void CacheMappingMatrix() { var fromElementSet = CreateElementSet("4 Points"); var toElementSet = CreateElementSet("2 Points"); ElementMapper.SupportsCaching = true; var elementMapper = new ElementMapper(); var methodDescriptions = elementMapper.GetAvailableMethods(fromElementSet.ElementType, toElementSet.ElementType); ElementMapper.CacheFileDirectory = @".\"; var cacheFilePath = ElementMapper.GetCacheFilePath(methodDescriptions[0].ToString(), fromElementSet, toElementSet); if (File.Exists(cacheFilePath)) { File.Delete(cacheFilePath); } elementMapper.Initialise(methodDescriptions[0].ToString(), fromElementSet, toElementSet); Assert.IsTrue(File.Exists(cacheFilePath)); // initialize (uses cache file) var elementMapper2 = new ElementMapper(); elementMapper2.Initialise(methodDescriptions[0].ToString(), fromElementSet, toElementSet); }
[Test] // testing the Initialise method public void UpdateMappingMatrix_PointPoint() { ElementSet fourPointsElementSet = CreateElementSet("4 Points"); ElementSet twoPointsElementSet = CreateElementSet("2 Points"); ElementMapper elementMapper = new ElementMapper(); IIdentifiable[] methods = SpatialAdaptedOutputFactory.GetAvailableMethods(fourPointsElementSet.ElementType, twoPointsElementSet.ElementType); elementMapper.Initialise(methods[0], fourPointsElementSet, twoPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + elementMapper.GetValueFromMappingMatrix(0, 1) + elementMapper.GetValueFromMappingMatrix(0, 2) + elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + elementMapper.GetValueFromMappingMatrix(1, 1) + elementMapper.GetValueFromMappingMatrix(1, 2) + elementMapper.GetValueFromMappingMatrix(1, 3)); elementMapper.Initialise(methods[1], fourPointsElementSet, twoPointsElementSet); Assert.AreEqual(0.56310461156889, elementMapper.GetValueFromMappingMatrix(0, 0), 0.000000001); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + elementMapper.GetValueFromMappingMatrix(0, 1) + elementMapper.GetValueFromMappingMatrix(0, 2) + elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + elementMapper.GetValueFromMappingMatrix(1, 1) + elementMapper.GetValueFromMappingMatrix(1, 2) + elementMapper.GetValueFromMappingMatrix(1, 3), 0.000000001); }
public void AfterSetMultiColumnsCantSetSimpleColumn() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); ActionAssert.Throws<ConfOrm.MappingException>(() => mapper.Column(cm => cm.Length(50))); }
/// <summary> /// 3D UZ !!!! /// Creates a dictionary with key equal to the model state index and the value the spatial information of that state index. /// </summary> /// <param name="gType">The geometric type of the exchange itme (2d or 3d)</param> /// <param name="baseOut">The exchange item base output</param> /// <param name="elementID">the string id of the exchange item.</param> /// <returns></returns> private IDictionary <int, ISpatialDefine> GetModelCoordinates3DUZ(GeometryTypes gType, IBaseOutput baseOut, string elementID) { IDictionary <int, ISpatialDefine> modelEntities = new Dictionary <int, ISpatialDefine>(); int n; try { WMEngine.GetElementCount(elementID); n = baseOut.ElementSet().ElementCount; } catch { Console.WriteLine("\nElement {0} does not found in the model\n", elementID); throw new Exception("\nProblem in Model Instance - unable to find exchange item\n"); } // Determines the number of layers in the UZ Grid. int numLayersInGrid = Convert.ToInt32(Math.Round((double)base.WMEngine.UzGrid.ElementCount / (double)base.WMEngine.UzGrid.BaseGrid.ElementCount)); for (int i = 0; i < n; i++) { XYPolygon modelpolygon = ElementMapper.CreateXYPolygon(baseOut.ElementSet(), i); int zLayer = Convert.ToInt32(i % numLayersInGrid); // Points in Polygon are defined as LL, LR, UR, UL (l/l = lower/left, u = upper, r = right ) // Finds the mid x and mid y point in the polygon (assuming rectangular grid) IXYLayerPoint min = new XYLayerPoint(modelpolygon.GetX(0), modelpolygon.GetY(0), zLayer); IXYLayerPoint max = new XYLayerPoint(modelpolygon.GetX(1), modelpolygon.GetY(3), zLayer); modelEntities.Add(i, new SpatialDefine(min, max, GeometryTypes.Geometry3DUZ)); } return(modelEntities); }
public void WhenCreatedThenAutoAssignType() { var elementMapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), elementMapping); elementMapping.type1.Should().Be("String"); }
public void PointSearchTest() { ElementSet elmtSet = ReadMesh(@"..\..\Spatial\Data\oresund.mesh"); XYElementSearchTree <int> tree = XYElementSearchTree <int> .BuildSearchTree(elmtSet); // Point in element 746 (has index 745) XYPoint point = new XYPoint(355273.227764, 6201136.0892); XYExtent pointExtent = XYExtentUtil.GetExtent(point); ICollection <int> pointCandidates = tree.FindElements(pointExtent); Assert.Contains(745, (ICollection)pointCandidates); XYPolygon elmt745 = ElementMapper.CreateFromXYPolygon(elmtSet, 745); Assert.IsTrue(XYGeometryTools.IsPointInPolygon(point.X, point.Y, elmt745)); // Point in element 3583 (has index 3582) XYPoint point2 = new XYPoint(354683.522377, 6167696.720773); XYExtent point2Extent = XYExtentUtil.GetExtent(point2); ICollection <int> point2Candidates = tree.FindElements(point2Extent); Assert.Contains(3582, (ICollection)point2Candidates); XYPolygon elmt3582 = ElementMapper.CreateFromXYPolygon(elmtSet, 3582); Assert.IsTrue(XYGeometryTools.IsPointInPolygon(point2.X, point2.Y, elmt3582)); // Node 2001 is part of 7 elements XYPoint pointNode2001 = new XYPoint(355451.29058143805, 6167084.759883712); XYExtent pointNode2001Extent = XYExtentUtil.GetExtent(pointNode2001); ICollection <int> pointNode2001Candidates = tree.FindElements(pointNode2001Extent); Assert.AreEqual(7, pointNode2001Candidates.Count); }
[Test] // testing the Initialise method public void UpdateMappingMatrix_PointPoint() { ElementSet fourPointsElementSet = CreateElementSet("4 Points"); ElementSet twoPointsElementSet = CreateElementSet("2 Points"); ElementMapper elementMapper = new ElementMapper(); ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, twoPointsElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, twoPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + elementMapper.GetValueFromMappingMatrix(0, 1) + elementMapper.GetValueFromMappingMatrix(0, 2) + elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + elementMapper.GetValueFromMappingMatrix(1, 1) + elementMapper.GetValueFromMappingMatrix(1, 2) + elementMapper.GetValueFromMappingMatrix(1, 3)); elementMapper.Initialise(methodDescriptions[1].ToString(), fourPointsElementSet, twoPointsElementSet); Assert.AreEqual(0.56310461156889, elementMapper.GetValueFromMappingMatrix(0, 0), 0.000000001); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + elementMapper.GetValueFromMappingMatrix(0, 1) + elementMapper.GetValueFromMappingMatrix(0, 2) + elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + elementMapper.GetValueFromMappingMatrix(1, 1) + elementMapper.GetValueFromMappingMatrix(1, 2) + elementMapper.GetValueFromMappingMatrix(1, 3), 0.000000001); }
public void CacheMappingMatrix() { var fromElementSet = CreateElementSet("4 Points"); var toElementSet = CreateElementSet("2 Points"); ElementMapper.SupportsCaching = true; var elementMapper = new ElementMapper(); var methodDescriptions = elementMapper.GetAvailableMethods(fromElementSet.ElementType, toElementSet.ElementType); ElementMapper.CacheFileDirectory = @".\"; var cacheFilePath = ElementMapper.GetCacheFilePath(methodDescriptions[0].ToString(), fromElementSet, toElementSet); if(File.Exists(cacheFilePath)) { File.Delete(cacheFilePath); } elementMapper.Initialise(methodDescriptions[0].ToString(), fromElementSet, toElementSet); Assert.IsTrue(File.Exists(cacheFilePath)); // initialize (uses cache file) var elementMapper2 = new ElementMapper(); elementMapper2.Initialise(methodDescriptions[0].ToString(), fromElementSet, toElementSet); }
public ITimeSpaceValueSet GetValues(IBaseExchangeItem querySpecifier) { ITimeSpaceExchangeItem timeSpaceQuery = querySpecifier as ITimeSpaceExchangeItem; if (timeSpaceQuery == null) { throw new ArgumentException("Must be an ITimeSpaceExchangeItem, add an adaptor", "querySpecifier"); } if (_children.Count == 0) { return(null); // TODO: Or throw an exception? } TimeSpaceValueSet <double> resultSet = ElementMapper.CreateResultValueSet(timeSpaceQuery.TimeSet.Times.Count, this.ElementSet().ElementCount); // Get values from all adaptees/children, and add them together for (int i = 0; i < _children.Count; i++) { ITimeSpaceOutputAdder addingChild = _children[i] as ITimeSpaceOutputAdder; if (addingChild != null) { addingChild.GetValues(resultSet, querySpecifier); } else { ITimeSpaceValueSet values = _children[i].GetValues(querySpecifier); AddSourceToTarget(resultSet, values); } } return(resultSet); }
public void AfterSetMultiColumnsCantSetSimpleColumn() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); ActionAssert.Throws <ConfOrm.MappingException>(() => mapper.Column(cm => cm.Length(50))); }
public void CanSetFormula() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Formula("SomeFormula"); mapping.formula.Should().Be("SomeFormula"); }
public void SettingColumnOverridesFormula() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Formula("formula"); mapper.Column(cm => cm.Unique(true)); mapping.formula.Should().Be.Null(); }
public IUIObject?CreateElement() { if (TryGetFrameworkElement(out var el)) { return(ElementMapper.Create(el)); } return(TryGetFrameworkContentElement(out var ce) ? ElementMapper.Create(ce) : null); }
public void AfterSetMultiColumnsCantSetSimpleColumn() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); Executing.This(() => mapper.Column(cm => cm.Length(50))).Should().Throw <MappingException>(); }
public void WhenSetInvalidTypeThenThrow() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); Executing.This(() => mapper.Type(typeof(object), null)).Should().Throw <ArgumentOutOfRangeException>(); Executing.This(() => mapper.Type(null, null)).Should().Throw <ArgumentNullException>(); }
public void WhenSetInvalidTypeThenThrow() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); ActionAssert.Throws <ArgumentOutOfRangeException>(() => mapper.Type(typeof(object), null)); ActionAssert.Throws <ArgumentNullException>(() => mapper.Type(null, null)); }
public void WhenSetTypeByICompositeUserTypeThenSetTypeName() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(object), mapping); Assert.That(() => mapper.Type <MyCompoType>(), Throws.Nothing); Assert.That(mapping.Type.name, Does.Contain(nameof(MyCompoType))); Assert.That(mapping.type, Is.Null); }
public void WhenSetTypeByNotFormalITypeThenSetTypeFullName() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Type <EnumStringType <MyEnum> >(); mapping.Type.name.Should().Contain(typeof(EnumStringType <MyEnum>).FullName); }
public void WhenSetTypeByITypeThenSetTypeName() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Type(NHibernateUtil.Int64); mapping.Type.name.Should().Be.EqualTo("Int64"); }
public void WhenSetMultiColumnsValuesThenAutoassignColumnNames() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); mapping.Columns.Should().Have.Count.EqualTo(2); mapping.Columns.All(cm => cm.name.Satisfy(n => !string.IsNullOrEmpty(n))); }
public void SettingColumnPlainValuesOverridesFormula() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Formula("formula"); mapper.Column("colName"); mapping.formula.Should().Be.Null(); mapping.column.Should().Be("colName"); }
private static void OnEventsChanged(Control d, string newValue, string?oldValue) { var ele = ElementMapper.Create(d); var rootOption = ControlBindLogic.FindRoot(ele.AsOption()); rootOption.Run( root => BindInternal(oldValue, newValue, root, ele), () => ControlBindLogic.MakeLazy((IUIElement)ele, newValue, oldValue, BindInternal)); }
public void SettingFormulaOverridesColumnNodes() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column(cm => cm.SqlType("VARCHAR(80)")); mapper.Formula("formula"); mapping.formula.Should().Be("formula"); mapping.column.Should().Be(null); mapping.Items.Should().Be.Null(); }
public void WhenSetColumnNameThenSetTheName() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column(cm => cm.Name("pepe")); mapping.Columns.Should().Have.Count.EqualTo(1); mapping.Columns.Single().name.Should().Be("pepe"); }
public void WhenSetFormulaWithNullThenDoNothing() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column("MyColumn"); mapper.Formula(null); mapping.formula.Should().Be.Null(); mapping.column.Should().Not.Be.Null(); }
public void WhenSetTypeByIUserTypeWithNullParamsThenSetTypeName() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Type <MyType>(null); mapping.Type.name.Should().Contain("MyType"); mapping.type.Should().Be.Null(); }
public IReadOnlyList <IEnumerable <CompatDifference> > Run <T>(ElementMapper <T> mapper) { int rightLength = mapper.Right.Length; List <CompatDifference>[] result = new List <CompatDifference> [rightLength]; if (rightLength == 1) { RunOnMapper(0); } else { for (int j = 0; j < rightLength; j++) { RunOnMapper(j); } } void RunOnMapper(int rightIndex) { string leftName = _leftName; string rightName = rightIndex < _rightNames.Length ? _rightNames[rightIndex] : DEFAULT_RIGHT_NAME; List <CompatDifference> differences = new(); T right = mapper.Right[rightIndex]; if (mapper is AssemblyMapper am) { _context.RunOnAssemblySymbolActions(am.Left, (IAssemblySymbol)right, leftName, rightName, differences); } else if (mapper is TypeMapper tm) { if (tm.ShouldDiffElement(rightIndex)) { _context.RunOnTypeSymbolActions(tm.Left, (ITypeSymbol)right, leftName, rightName, differences); } } else if (mapper is MemberMapper mm) { if (mm.ShouldDiffElement(rightIndex)) { _context.RunOnMemberSymbolActions( mm.Left, (ISymbol)right, mm.ContainingType.Left, mm.ContainingType.Right[rightIndex], leftName, rightName, differences); } } result[rightIndex] = differences; } return(result); }
public void AddLink(ILink link) { DHI.OpenMI.Backbone.Link locallink = new Link(); AlteredLinks.Add(link.ID, locallink); //Mikeshe is the source. Create new local dataoperations. if (link.SourceComponent == this) { locallink.SourceComponent = MsheOrg; for (int i = 0; i < link.DataOperationsCount; i++) { ElementMapper em = new ElementMapper(); string desc = ""; for (int j = 0; j < link.GetDataOperation(i).ArgumentCount; j++) { if (link.GetDataOperation(i).GetArgument(j).Key == "Description") { desc = link.GetDataOperation(i).GetArgument(j).Value; } } em.Initialise(desc, link.SourceElementSet, link.TargetElementSet); mappers.Add(link.ID, em); } } else { locallink.SourceComponent = link.SourceComponent; } //Mike she is the target. Copy the dataoperations if (link.TargetComponent == this) { locallink.TargetComponent = MsheOrg; for (int i = 0; i < link.DataOperationsCount; i++) { locallink.AddDataOperation(link.GetDataOperation(i)); } } else { locallink.TargetComponent = link.TargetComponent; } locallink.ID = link.ID; locallink.SourceElementSet = link.SourceElementSet; locallink.SourceQuantity = link.SourceQuantity; locallink.TargetElementSet = link.TargetElementSet; locallink.TargetQuantity = link.TargetQuantity; MsheOrg.AddLink(locallink); }
public void WhenSetFormulaThenResetColumn() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column("MyColumn"); mapper.Formula("SomeFormula"); mapping.formula.Should().Be("SomeFormula"); mapping.column.Should().Be.Null(); mapping.Items.Should().Be.Null(); }
public void GetAvailableMethods() { ElementMapper elementMapper = new ElementMapper(); ElementType fromElementType = ElementType.XYPolygon; ElementType toElementType = ElementType.XYPolygon; ArrayList availableMethods = elementMapper.GetAvailableMethods(fromElementType, toElementType); Assert.AreEqual("Weighted Mean", availableMethods[0]); Assert.AreEqual("Weighted Sum", availableMethods[1]); }
public void WhenSetBasicColumnValuesMoreThanOnesThenMergeColumn() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column(cm => cm.Length(50)); mapper.Column(cm => cm.NotNullable(true)); mapping.Items.Should().Be.Null(); mapping.length.Should().Be("50"); mapping.notnull.Should().Be(true); }
[Test] // testing the Initialise method public void UpdateMappingMatrix_Pointline() { ElementSet fourPointsElementSet = CreateElementSet("4 Other Points"); ElementSet lineElementSet = CreateElementSet("2 element XYline ElementSet"); ElementMapper elementMapper = new ElementMapper(); // point to polyline ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, lineElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, lineElementSet); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); elementMapper.Initialise(methodDescriptions[1].ToString(), fourPointsElementSet, lineElementSet); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); // polyline to point methodDescriptions = elementMapper.GetAvailableMethods(lineElementSet.ElementType, fourPointsElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), lineElementSet, fourPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); elementMapper.Initialise(methodDescriptions[1].ToString(), lineElementSet, fourPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0.585786437626905, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); }
public void SettingFormulaOverridesColumnPlainValues() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column("colName"); mapper.Length(10); mapper.NotNullable(true); mapper.Formula("formula"); mapping.formula.Should().Be("formula"); mapping.column.Should().Be(null); mapping.length.Should().Be(null); mapping.notnull.Should().Be(false); mapping.Items.Should().Be.Null(); }
public void WhenSetBasicColumnValuesThroughShortCutThenMergeColumn() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column("pizza"); mapper.Length(50); mapper.Precision(10); mapper.Scale(2); mapper.NotNullable(true); mapper.Unique(true); mapping.Items.Should().Be.Null(); mapping.column.Should().Be("pizza"); mapping.length.Should().Be("50"); mapping.precision.Should().Be("10"); mapping.scale.Should().Be("2"); mapping.notnull.Should().Be(true); mapping.unique.Should().Be(true); }
public void WhenSetColumnValuesThenAddColumnTag() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Column(cm => { cm.SqlType("VARCHAR(50)"); cm.NotNullable(true); }); mapping.Items.Should().Not.Be.Null(); mapping.Columns.Should().Have.Count.EqualTo(1); }
public void UpdateMappingMatrix_PointPolyline() { ElementSet fourPointsElementSet = CreateElementSet("4 Other Points"); ElementSet lineElementSet = CreateElementSet("3 points polyline"); ElementMapper elementMapper = new ElementMapper(); // point to polyline ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, lineElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, lineElementSet); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, lineElementSet); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); // polyline to point methodDescriptions = elementMapper.GetAvailableMethods(lineElementSet.ElementType, fourPointsElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), lineElementSet, fourPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); elementMapper.Initialise(methodDescriptions[1].ToString(), lineElementSet, fourPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0.585786437626905, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); }
public void WhenSetTypeByIUserTypeWithParamsThenSetType() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Type<MyType>(new { Param1 = "a", Param2 = 12 }); mapping.type1.Should().Be.Null(); mapping.Type.name.Should().Contain("MyType"); mapping.Type.param.Should().Have.Count.EqualTo(2); mapping.Type.param.Select(p => p.name).Should().Have.SameValuesAs("Param1", "Param2"); mapping.Type.param.Select(p => p.GetText()).Should().Have.SameValuesAs("a", "12"); }
public void GetAvailableDataOperations() { ElementMapper elementMapper = new ElementMapper(); Console.WriteLine("=========================FROM XYPoint===================================="); var dataOperationsXYPoint = ElementMapper.GetAvailableDataOperations(ElementType.XYPoint); foreach (IDataOperation operation in dataOperationsXYPoint) { Console.WriteLine(" "); Console.WriteLine("------------------------------------"); Console.WriteLine("DataOperationID: " + operation.ID); for (int i = 0; i < operation.ArgumentCount; i++) { Console.WriteLine(" "); Console.WriteLine("Key: " + operation.GetArgument(i).Key); Console.WriteLine("Value: " + operation.GetArgument(i).Value); Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); Console.WriteLine("Description: " + operation.GetArgument(i).Description); } } Console.WriteLine(" "); Console.WriteLine("========================= FROM XYLine ===================================="); var dataOperationsXYLine = ElementMapper.GetAvailableDataOperations(ElementType.XYLine); foreach (IDataOperation operation in dataOperationsXYLine) { Console.WriteLine(" "); Console.WriteLine("------------------------------------"); Console.WriteLine("DataOperationID: " + operation.ID); for (int i = 0; i < operation.ArgumentCount; i++) { Console.WriteLine(" "); Console.WriteLine("Key: " + operation.GetArgument(i).Key); Console.WriteLine("Value: " + operation.GetArgument(i).Value); Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); Console.WriteLine("Description: " + operation.GetArgument(i).Description); } } Console.WriteLine(" "); Console.WriteLine("========================= FROM XYPolyLine ===================================="); var dataOperationsXYPolyLine = ElementMapper.GetAvailableDataOperations(ElementType.XYPolyLine); foreach (IDataOperation operation in dataOperationsXYPolyLine) { Console.WriteLine(" "); Console.WriteLine("------------------------------------"); Console.WriteLine("DataOperationID: " + operation.ID); for (int i = 0; i < operation.ArgumentCount; i++) { Console.WriteLine(" "); Console.WriteLine("Key: " + operation.GetArgument(i).Key); Console.WriteLine("Value: " + operation.GetArgument(i).Value); Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); Console.WriteLine("Description: " + operation.GetArgument(i).Description); } } Console.WriteLine(" "); Console.WriteLine("=========================FROM XYPolygon===================================="); var dataOperationsXYPolygon = ElementMapper.GetAvailableDataOperations(ElementType.XYPolygon); foreach (IDataOperation operation in dataOperationsXYPolygon) { Console.WriteLine(" "); Console.WriteLine("------------------------------------"); Console.WriteLine("DataOperationID: " + operation.ID); for (int i = 0; i < operation.ArgumentCount; i++) { Console.WriteLine(" "); Console.WriteLine("Key: " + operation.GetArgument(i).Key); Console.WriteLine("Value: " + operation.GetArgument(i).Value); Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); Console.WriteLine("Description: " + operation.GetArgument(i).Description); } } bool operationWasFound = false; bool IDWasFound = false; bool descriptionWasFound = false; bool typeWasFound = false; bool fromElementTypeWasFound = false; bool toElementTypeWasFound = false; foreach (IDataOperation operation in dataOperationsXYPolygon) { if (operation.ID == "ElementMapper801") { operationWasFound = true; for (int i = 0; i < operation.ArgumentCount; i++) { if (operation.GetArgument(i).Key == "ID") { Assert.AreEqual("801",operation.GetArgument(i).Value); IDWasFound = true; } if (operation.GetArgument(i).Key == "Description") { Assert.AreEqual("Weighted Sum",operation.GetArgument(i).Value); descriptionWasFound = true; } if (operation.GetArgument(i).Key == "Type") { Assert.AreEqual("SpatialMapping",operation.GetArgument(i).Value); typeWasFound = true; } if (operation.GetArgument(i).Key == "FromElementType") { Assert.AreEqual("XYPolygon",operation.GetArgument(i).Value); fromElementTypeWasFound = true; } if (operation.GetArgument(i).Key == "ToElementType") { Assert.AreEqual("XYPolygon",operation.GetArgument(i).Value); toElementTypeWasFound = true; } } } } Assert.AreEqual(true,operationWasFound); Assert.AreEqual(true,IDWasFound); Assert.AreEqual(true,descriptionWasFound); Assert.AreEqual(true,typeWasFound); Assert.AreEqual(true,fromElementTypeWasFound); Assert.AreEqual(true,toElementTypeWasFound); }
public void WhenSetTypeByIUserTypeWithNullParamsThenSetTypeName() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Type<MyType>(null); mapping.Type.name.Should().Contain("MyType"); mapping.type.Should().Be.Null(); }
public void WhenSetMultiColumnsValuesThenAddColumns() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Type<MyType>(); mapper.Columns(cm => { cm.Name("column1"); cm.Length(50); }, cm => { cm.Name("column2"); cm.SqlType("VARCHAR(10)"); }); mapping.Columns.Should().Have.Count.EqualTo(2); }
public void WhenSetInvalidTypeThenThrow() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); ActionAssert.Throws<ArgumentOutOfRangeException>(() => mapper.Type(typeof(object), null)); ActionAssert.Throws<ArgumentNullException>(() => mapper.Type(null, null)); }
public void AddLink(ILink link) { DHI.OpenMI.Backbone.Link locallink = new Link(); AlteredLinks.Add(link.ID, locallink); //Mikeshe is the source. Create new local dataoperations. if (link.SourceComponent == this) { locallink.SourceComponent = MsheOrg; for (int i = 0; i < link.DataOperationsCount; i++) { ElementMapper em = new ElementMapper(); string desc=""; for (int j=0;j<link.GetDataOperation(i).ArgumentCount;j++) if (link.GetDataOperation(i).GetArgument(j).Key=="Description") desc = link.GetDataOperation(i).GetArgument(j).Value; em.Initialise(desc, link.SourceElementSet, link.TargetElementSet); mappers.Add(link.ID, em); } } else locallink.SourceComponent = link.SourceComponent; //Mike she is the target. Copy the dataoperations if (link.TargetComponent == this) { locallink.TargetComponent = MsheOrg; for (int i = 0; i < link.DataOperationsCount; i++) locallink.AddDataOperation(link.GetDataOperation(i)); } else locallink.TargetComponent = link.TargetComponent; locallink.ID = link.ID; locallink.SourceElementSet = link.SourceElementSet; locallink.SourceQuantity = link.SourceQuantity; locallink.TargetElementSet = link.TargetElementSet; locallink.TargetQuantity = link.TargetQuantity; MsheOrg.AddLink(locallink); }
public void UpdateMappingMatrix_PolylinePolygon() { ElementSet twoSquaresGrid = new ElementSet("TwoSquaresGrid","TwoSquaresGrid",ElementType.XYPolygon,new SpatialReference("ref")); Element e1 = new Element("e1"); Element e2 = new Element("e2"); e1.AddVertex(new Vertex(1,1,0)); e1.AddVertex(new Vertex(3,1,0)); e1.AddVertex(new Vertex(3,3,0)); e1.AddVertex(new Vertex(1,3,0)); e2.AddVertex(new Vertex(3,1,0)); e2.AddVertex(new Vertex(5,1,0)); e2.AddVertex(new Vertex(5,3,0)); e2.AddVertex(new Vertex(3,3,0)); twoSquaresGrid.AddElement(e1); twoSquaresGrid.AddElement(e2); ElementSet twoLines = new ElementSet("TwoLines","TwoLines",ElementType.XYPolyLine,new SpatialReference("ref")); Element l1 = new Element("l1"); Element l2 = new Element("l2"); l1.AddVertex(new Vertex(0,2.5,0)); l1.AddVertex(new Vertex(2,2.5,0)); l2.AddVertex(new Vertex(2,2.5,0)); l2.AddVertex(new Vertex(4,1.5,0)); twoLines.AddElement(l1); twoLines.AddElement(l2); // Line to Polygon ElementMapper elementMapper = new ElementMapper(); ArrayList methodDescriptions = elementMapper.GetAvailableMethods(twoLines.ElementType, twoSquaresGrid.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), twoLines,twoSquaresGrid); Assert.AreEqual(1/(1+Math.Sqrt(1+Math.Pow(0.5,2))),elementMapper.GetValueFromMappingMatrix(0,0),"Test1"); Assert.AreEqual(1-1/(1+Math.Sqrt(1+Math.Pow(0.5,2))),elementMapper.GetValueFromMappingMatrix(0,1),"Test2"); Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(1,0),"Test3"); Assert.AreEqual(1,elementMapper.GetValueFromMappingMatrix(1,1),"Test4"); elementMapper.Initialise(methodDescriptions[1].ToString(), twoLines,twoSquaresGrid); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,0),"Test5"); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,1),"Test6"); Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(1,0),"Test7"); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test8"); // Polygon To PolyLine methodDescriptions = elementMapper.GetAvailableMethods(twoSquaresGrid.ElementType, twoLines.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), twoSquaresGrid, twoLines); Assert.AreEqual(1.0,elementMapper.GetValueFromMappingMatrix(0,0),"Test9"); Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(0,1),"Test10"); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,0),"Test11"); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test12"); elementMapper.Initialise(methodDescriptions[1].ToString(), twoSquaresGrid, twoLines); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,0),"Test13"); Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(0,1),"Test14"); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,0),"Test15"); Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test16"); }
public void WhenSetTypeByNotFormalITypeThenSetTypeFullName() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Type<EnumStringType<MyEnum>>(); mapping.Type.name.Should().Contain(typeof(EnumStringType<MyEnum>).FullName); }
public void ExpectexException_UpdateMappingMatrix_ElementChecker() { //Two Vertices in point element error ElementSet elementSet = new ElementSet("test","test",ElementType.XYPoint,new SpatialReference("DummyID")); Element e1 = new Element("e1"); e1.AddVertex(new Vertex(1,1,1)); e1.AddVertex(new Vertex(2,2,2)); //here the error is introduced on purpose elementSet.AddElement(e1); ElementMapper elementMapper = new ElementMapper(); string method = (string) elementMapper.GetAvailableMethods(ElementType.XYPolyLine,ElementType.XYPolygon)[0]; elementMapper.UpdateMappingMatrix(method,elementSet,elementSet); }
public void WhenSetFormulaWithMultipleLinesThenSetFormulaNode() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); var formula = @"Line1 Line2"; mapper.Formula(formula); mapping.formula.Should().Be.Null(); mapping.Items.FirstOrDefault().Should().Not.Be.Null().And.Be.OfType<HbmFormula>(); var hbmFormula = (HbmFormula)(mapping.Items.First()); hbmFormula.Text.Length.Should().Be(2); hbmFormula.Text[0].Should().Be("Line1"); hbmFormula.Text[1].Should().Be("Line2"); }
public void UpdateMappingMatrix_PolygonPolygon() { Vertex v1_0_10 = new Vertex(0,10,0); Vertex v1_0_0 = new Vertex(0,0,0); Vertex v1_10_0 = new Vertex(10,0,0); Vertex v1_10_10 = new Vertex(10,10,0); Vertex v1_20_0 = new Vertex(20,0,0); Vertex v1_20_10 = new Vertex(20,10,0); Vertex v1_5_9 = new Vertex(5,9,0); Vertex v1_5_1 = new Vertex(5,1,0); Vertex v1_15_5 = new Vertex(15,5,0); Element LeftSquare = new Element("LeftSquare"); LeftSquare.AddVertex(v1_0_10); LeftSquare.AddVertex(v1_0_0); LeftSquare.AddVertex(v1_10_0); LeftSquare.AddVertex(v1_10_10); Element RightSquare = new Element("RightSquare"); RightSquare.AddVertex(v1_10_10); RightSquare.AddVertex(v1_10_0); RightSquare.AddVertex(v1_20_0); RightSquare.AddVertex(v1_20_10); Element Triangle = new Element("Triangle"); Triangle.AddVertex(v1_5_9); Triangle.AddVertex(v1_5_1); Triangle.AddVertex(v1_15_5); ElementSet TwoSquareElementSet = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); ElementSet TriangleElementSet = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); TwoSquareElementSet.AddElement(LeftSquare); TwoSquareElementSet.AddElement(RightSquare); TriangleElementSet.AddElement(Triangle); ElementMapper elementMapper = new ElementMapper(); ArrayList methodDescriptions = elementMapper.GetAvailableMethods(TwoSquareElementSet.ElementType, TriangleElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), TriangleElementSet, TwoSquareElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test1"); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0),"Test2"); elementMapper.Initialise(methodDescriptions[0].ToString(), TwoSquareElementSet, TriangleElementSet); Assert.AreEqual(0.75, elementMapper.GetValueFromMappingMatrix(0, 0),0.000000001,"Test3"); Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 1),"Test4"); elementMapper.Initialise(methodDescriptions[1].ToString(), TriangleElementSet, TwoSquareElementSet); Assert.AreEqual(0.3, elementMapper.GetValueFromMappingMatrix(0, 0),"Test5"); Assert.AreEqual(0.1, elementMapper.GetValueFromMappingMatrix(1, 0),"Test6"); elementMapper.Initialise(methodDescriptions[1].ToString(), TwoSquareElementSet, TriangleElementSet); Assert.AreEqual(0.75, elementMapper.GetValueFromMappingMatrix(0, 0),0.0000000001,"Test7"); Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 1),"Test8"); Vertex v2_0_2 = new Vertex(0,2,0); Vertex v2_0_0 = new Vertex(0,0,0); Vertex v2_2_0 = new Vertex(2,0,0); Vertex v2_1_2 = new Vertex(1,2,0); Vertex v2_1_0 = new Vertex(1,0,0); Vertex v2_3_0 = new Vertex(3,0,0); Element LeftTriangle2 = new Element("LeftTriangle"); LeftTriangle2.AddVertex(v2_0_2); LeftTriangle2.AddVertex(v2_0_0); LeftTriangle2.AddVertex(v2_2_0); Element RightTriangle2 = new Element("RightTriangle"); RightTriangle2.AddVertex(v2_1_2); RightTriangle2.AddVertex(v2_1_0); RightTriangle2.AddVertex(v2_3_0); ElementSet LeftTriangleElementSet2 = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); ElementSet RightTriangleElementSet2 = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); LeftTriangleElementSet2.AddElement(LeftTriangle2); RightTriangleElementSet2.AddElement(RightTriangle2); elementMapper.Initialise(methodDescriptions[0].ToString(), LeftTriangleElementSet2, RightTriangleElementSet2); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test9"); elementMapper.Initialise(methodDescriptions[0].ToString(), RightTriangleElementSet2, LeftTriangleElementSet2); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test10"); elementMapper.Initialise(methodDescriptions[1].ToString(), LeftTriangleElementSet2, RightTriangleElementSet2); Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 0),"Test11"); elementMapper.Initialise(methodDescriptions[1].ToString(), RightTriangleElementSet2, LeftTriangleElementSet2); Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 0),"Test12"); Vertex v3_0_2 = new Vertex(0,2,0); Vertex v3_0_0 = new Vertex(0,0,0); Vertex v3_2_0 = new Vertex(2,0,0); Vertex v3_1_2 = new Vertex(1,2,0); Vertex v3_1_0 = new Vertex(1,0,0); Vertex v3_3_2 = new Vertex(3,2,0); Element LeftTriangle3 = new Element("LeftTriangle"); LeftTriangle3.AddVertex(v3_0_2); LeftTriangle3.AddVertex(v3_0_0); LeftTriangle3.AddVertex(v3_2_0); Element RightTriangle3 = new Element("RightTriangle"); RightTriangle3.AddVertex(v3_1_2); RightTriangle3.AddVertex(v3_1_0); RightTriangle3.AddVertex(v3_3_2); ElementSet LeftTriangleElementSet3 = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); ElementSet RightTriangleElementSet3 = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); LeftTriangleElementSet3.AddElement(LeftTriangle3); RightTriangleElementSet3.AddElement(RightTriangle3); elementMapper.Initialise(methodDescriptions[0].ToString(), LeftTriangleElementSet3, RightTriangleElementSet3); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test13"); elementMapper.Initialise(methodDescriptions[0].ToString(), RightTriangleElementSet3, LeftTriangleElementSet3); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test14"); elementMapper.Initialise(methodDescriptions[1].ToString(), LeftTriangleElementSet3, RightTriangleElementSet3); Assert.AreEqual(0.125, elementMapper.GetValueFromMappingMatrix(0, 0),"Test15"); elementMapper.Initialise(methodDescriptions[1].ToString(), RightTriangleElementSet3, LeftTriangleElementSet3); Assert.AreEqual(0.125, elementMapper.GetValueFromMappingMatrix(0, 0),"Test16"); }
public void UpdateMappingMatrix_PointPoint() { ElementSet fourPointsElementSet = CreateElementSet("4 Points"); ElementSet twoPointsElementSet = CreateElementSet("2 Points"); ElementMapper elementMapper = new ElementMapper(); ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, twoPointsElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, twoPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) +elementMapper.GetValueFromMappingMatrix(0, 1) +elementMapper.GetValueFromMappingMatrix(0, 2) +elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) +elementMapper.GetValueFromMappingMatrix(1, 1) +elementMapper.GetValueFromMappingMatrix(1, 2) +elementMapper.GetValueFromMappingMatrix(1, 3)); elementMapper.Initialise(methodDescriptions[1].ToString(), fourPointsElementSet, twoPointsElementSet); Assert.AreEqual(0.56310461156889, elementMapper.GetValueFromMappingMatrix(0, 0),0.000000001); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) +elementMapper.GetValueFromMappingMatrix(0, 1) +elementMapper.GetValueFromMappingMatrix(0, 2) +elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) +elementMapper.GetValueFromMappingMatrix(1, 1) +elementMapper.GetValueFromMappingMatrix(1, 2) +elementMapper.GetValueFromMappingMatrix(1, 3),0.000000001); }
public void UpdateMappingMatrix_PointPolygon() { ElementSet gridElementSet = new ElementSet("gridElm","G1",ElementType.XYPolygon, new SpatialReference("ref")); ElementSet fourPointsElementSet = new ElementSet("4 points","4P",ElementType.XYPoint,new SpatialReference("DummyID")); Vertex v_0_20 = new Vertex(0,20,0); Vertex v_0_10 = new Vertex(0,10,0); Vertex v_0_0 = new Vertex(0, 0,0); Vertex v_0_15 = new Vertex(0,15,0); Vertex v_5_15 = new Vertex(5,15,0); Vertex v_10_20 = new Vertex(10,20,0); Vertex v_10_15 = new Vertex(10,15,0); Vertex v_10_10 = new Vertex(10,10,0); Vertex v_10_0 = new Vertex(10, 0,0); Vertex v_15_15 = new Vertex(15,15,0); Vertex v_15_5 = new Vertex(15,5,0); Vertex v_20_20 = new Vertex(20,20,0); Vertex v_20_10 = new Vertex(20,10,0); Element square1 = new Element("square1"); Element square2 = new Element("square2"); Element square3 = new Element("square3"); square1.AddVertex(v_0_20); square1.AddVertex(v_0_10); square1.AddVertex(v_10_10); square1.AddVertex(v_10_20); square2.AddVertex(v_10_20); square2.AddVertex(v_10_10); square2.AddVertex(v_20_10); square2.AddVertex(v_20_20); square3.AddVertex(v_0_10); square3.AddVertex(v_0_0); square3.AddVertex(v_10_0); square3.AddVertex(v_10_10); gridElementSet.AddElement(square1); gridElementSet.AddElement(square2); gridElementSet.AddElement(square3); Element point_5_15 = new Element("point 5, 15"); Element point_10_15 = new Element("point 10, 15"); Element point_15_15 = new Element("point 15, 15"); Element point_15_5 = new Element("point 15, 5"); point_5_15.AddVertex(v_5_15); point_10_15.AddVertex(v_10_15); point_15_15.AddVertex(v_15_15); point_15_5.AddVertex(v_15_5); fourPointsElementSet.AddElement(point_5_15); fourPointsElementSet.AddElement(point_10_15); fourPointsElementSet.AddElement(point_15_15); fourPointsElementSet.AddElement(point_15_5); ElementMapper elementMapper = new ElementMapper(); // point to polygon ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, gridElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, gridElementSet); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 1)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 3)); // polygon to point methodDescriptions = elementMapper.GetAvailableMethods(gridElementSet.ElementType, fourPointsElementSet.ElementType); elementMapper.Initialise(methodDescriptions[0].ToString(), gridElementSet, fourPointsElementSet); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 2)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 0)); Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(2, 1)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 2)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 0)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 1)); Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 2)); }