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);
        }
Exemplo n.º 2
0
        [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)));
 }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        public void WhenCreatedThenAutoAssignType()
        {
            var elementMapping = new HbmElement();
            var mapper         = new ElementMapper(typeof(string), elementMapping);

            elementMapping.type1.Should().Be("String");
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 10
0
        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)));
        }
Exemplo n.º 11
0
        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);
 }
Exemplo n.º 14
0
        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>();
        }
Exemplo n.º 15
0
        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 CanSetFormula()
        {
            var mapping = new HbmElement();
            var mapper = new ElementMapper(typeof(string), mapping);

            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
        }
Exemplo n.º 17
0
        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));
        }
Exemplo n.º 18
0
        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 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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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");
        }
Exemplo n.º 22
0
        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");
 }
Exemplo n.º 24
0
        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();
 }
Exemplo n.º 26
0
        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");
        }
Exemplo n.º 27
0
        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");
        }
Exemplo n.º 28
0
        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();
        }
Exemplo n.º 29
0
        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();
        }
Exemplo n.º 30
0
        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);
        }
Exemplo n.º 32
0
        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]);
        }
Exemplo n.º 34
0
        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 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);
        }
Exemplo n.º 36
0
        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 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 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 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);
 }
Exemplo n.º 43
0
        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");
        }
Exemplo n.º 45
0
        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 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 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 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 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);

    }
Exemplo n.º 52
0
        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 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");
        }
Exemplo n.º 55
0
        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");
 }
Exemplo n.º 57
0
        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 WhenCreatedThenAutoAssignType()
 {
     var elementMapping = new HbmElement();
     var mapper = new ElementMapper(typeof(string), elementMapping);
     elementMapping.type1.Should().Be("String");
 }
Exemplo n.º 59
0
        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);
        }
Exemplo n.º 60
0
        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));
        }