public void ConstructRobot() { string name = "robot"; Dictionary <string, Link> links = new Dictionary <string, Link>(); Dictionary <string, Joint> joints = new Dictionary <string, Joint>(); Robot robot = new Robot(name, links, joints); Link link1 = new Link.Builder("link1").Build(); Link link2 = new Link.Builder("link2").Build(); Link link3 = new Link.Builder("link3").Build(); Joint joint1 = new Joint.Builder("joint1", Joint.JointType.Continuous, link1, link2).Build(); Joint joint2 = new Joint.Builder("joint2", Joint.JointType.Continuous, link1, link3).Build(); links.Add(link1.Name, link1); links.Add(link2.Name, link2); links.Add(link3.Name, link3); joints.Add(joint1.Name, joint1); joints.Add(joint2.Name, joint2); Assert.AreEqual(name, robot.Name); Assert.AreEqual(links, robot.Links); Assert.AreEqual(joints, robot.Joints); foreach (Joint joint in robot.Joints.Values) { Assert.IsTrue(robot.Links.ContainsValue(joint.Parent)); Assert.IsTrue(robot.Links.ContainsValue(joint.Child)); } }
public void EqualsAndHash() { Dictionary <string, Link> links = new Dictionary <string, Link>(); Dictionary <string, Link> differentLinks = new Dictionary <string, Link>(); Dictionary <string, Link> mostlySameLinks = new Dictionary <string, Link>(); Dictionary <string, Joint> joints = new Dictionary <string, Joint>(); Dictionary <string, Joint> mostlySameJoints = new Dictionary <string, Joint>(); Dictionary <string, Joint> differentJoints = new Dictionary <string, Joint>(); Link link1 = new Link.Builder("link1").Build(); Link link2 = new Link.Builder("link2").Build(); Link link3 = new Link.Builder("link3").Build(); Joint joint1 = new Joint.Builder("joint1", Joint.JointType.Continuous, link1, link2).Build(); Joint joint2 = new Joint.Builder("joint2", Joint.JointType.Continuous, link1, link3).Build(); Link differentLink1 = new Link.Builder("different_link1").Build(); Link differentLink2 = new Link.Builder("different_link2").Build(); Joint differentJoint = new Joint.Builder("differnt_joint", Joint.JointType.Continuous, differentLink1, differentLink2).Build(); links.Add(link1.Name, link1); links.Add(link2.Name, link2); links.Add(link3.Name, link3); joints.Add(joint1.Name, joint1); joints.Add(joint2.Name, joint2); mostlySameLinks.Add(link1.Name, link1); mostlySameLinks.Add(link2.Name, link2); mostlySameJoints.Add(joint1.Name, joint1); differentLinks.Add(differentLink1.Name, differentLink1); differentLinks.Add(differentLink2.Name, differentLink2); differentJoints.Add(differentJoint.Name, differentJoint); Robot robot = new Robot("robot", links, joints); Robot same1 = new Robot("robot", links, joints); Robot same2 = new Robot("robot", new Dictionary <string, Link>(links), new Dictionary <string, Joint>(joints)); Robot diff1 = new Robot("different_robot", links, joints); Robot diff2 = new Robot("robot", differentLinks, differentJoints); Robot diff3 = new Robot("robot", links, mostlySameJoints); Robot diff4 = new Robot("robot", mostlySameLinks, joints); Assert.IsTrue(robot.Equals(robot)); Assert.IsFalse(robot.Equals(null)); Assert.IsTrue(robot.Equals(same1)); Assert.IsTrue(robot.Equals(same2)); Assert.IsTrue(same1.Equals(robot)); Assert.IsTrue(same2.Equals(robot)); Assert.IsFalse(robot.Equals(diff1)); Assert.IsFalse(robot.Equals(diff2)); Assert.IsFalse(robot.Equals(diff3)); Assert.IsFalse(robot.Equals(diff4)); Assert.AreEqual(robot.GetHashCode(), robot.GetHashCode()); Assert.AreEqual(robot.GetHashCode(), same1.GetHashCode()); Assert.AreEqual(robot.GetHashCode(), same2.GetHashCode()); Assert.AreNotEqual(robot.GetHashCode(), diff1.GetHashCode()); Assert.AreNotEqual(robot.GetHashCode(), diff2.GetHashCode()); Assert.AreNotEqual(robot.GetHashCode(), diff3.GetHashCode()); Assert.AreNotEqual(robot.GetHashCode(), diff4.GetHashCode()); }
public void ConstructLinkNameOnly() { string name = "linkName"; Link link = new Link.Builder(name).Build(); Assert.AreEqual(name, link.Name); Assert.IsNull(link.Inertial); Assert.AreEqual(0, link.Visual.Count); Assert.AreEqual(0, link.Collision.Count); }
public static void Initialize(TestContext context) { Link parent = new Link.Builder(PARENT_JOINT_NAME).Build(); Link child = new Link.Builder(CHILD_JOINT_NAME).Build(); Joint mimic = new Joint.Builder(MIMIC_JOINT_NAME, Joint.JointType.Continuous, parent, child).Build(); linkDictionary.Add(parent.Name, parent); linkDictionary.Add(child.Name, child); jointDictionary.Add(mimic.Name, mimic); }
public void ConstructLinkTwoOfThreeBuilderSetters() { string name = "linkName"; Inertial inertial = new Inertial(new Mass(1), new Inertia(1, 1, 1, 1, 1, 1)); List<Collision> collisions = new List<Collision>(); Link link = new Link.Builder(name).SetInertial(inertial).SetCollision(collisions).Build(); Assert.AreEqual(name, link.Name); Assert.AreEqual(inertial, link.Inertial); Assert.AreEqual(0, link.Visual.Count); Assert.AreEqual(collisions, link.Collision); }
public void ConstructLinkChainBuilderSetters() { string name = "linkName"; Inertial inertial = new Inertial(new Mass(1), new Inertia(1, 1, 1, 1, 1, 1)); Visual visual = new Visual.Builder(new Geometry(new Sphere(1))).Build(); List<Collision> collisions = new List<Collision>(); Link link = new Link.Builder(name).SetInertial(inertial).SetVisual(visual).SetCollision(collisions).Build(); Assert.AreEqual(name, link.Name); Assert.AreEqual(inertial, link.Inertial); Assert.AreEqual(visual, link.Visual[0]); Assert.AreEqual(collisions, link.Collision); }
protected Configuration Deploy() { for (int i = 0; i < players.Length; ++i) { Player player = players[i]; player.SetID(i); links[i] = new Link.Builder() .IP(peerIPs[i]) .Port(peerPorts[i]) .Bind(player.ShouldBind()) .ReceiveTimeout(receiveTimeout) .SendTimeout(sendTimeout) .Build(); threading.Submit(i, new ThreadStart(player.Replicate)); } return(this); }
public void ToStringRobot() { Dictionary <string, Link> links = new Dictionary <string, Link>(); Dictionary <string, Joint> joints = new Dictionary <string, Joint>(); Robot robot = new Robot("robo", links, joints); Link link1 = new Link.Builder("link1").Build(); Link link2 = new Link.Builder("link2").Build(); Joint joint1 = new Joint.Builder("joint1", Joint.JointType.Fixed, link1, link2).Build(); links.Add(link1.Name, link1); links.Add(link2.Name, link2); joints.Add(joint1.Name, joint1); Assert.AreEqual("<robot name=\"robo\">\r\n<link name=\"link1\"/>\r\n<link name=\"link2\"/>\r\n<joint name=\"joint1\" type=\"fixed\">\r\n<parent link=\"link1\"/>\r\n<child link=\"link2\"/>\r\n</joint>\r\n</robot>", robot.ToString().Replace(" ", "")); }
public void EqualsAndHash() { Inertial inertial = new Inertial(new Mass(1), new Inertia(1, 1, 1, 1, 1, 1)); Visual visual = new Visual.Builder(new Geometry(new Sphere(1))).Build(); List<Visual> visualList = new List<Visual>(); List<Visual> diffVisualList = new List<Visual>(); List<Collision> collisionList = new List<Collision>(); visualList.Add(visual); diffVisualList.Add(visual); diffVisualList.Add(new Visual.Builder(new Geometry(new Box(new SizeAttribute(1, 2, 3)))).Build()); Link link = new Link.Builder("link").SetInertial(inertial).SetVisual(visual).SetCollision(collisionList).Build(); Link same1 = new Link.Builder("link").SetInertial(inertial).SetVisual(visual).SetCollision(collisionList).Build(); Link same2 = new Link.Builder("link").SetInertial(inertial).SetVisual(visualList).SetCollision(collisionList).Build(); Link same3 = new Link.Builder("link").SetInertial(inertial).SetVisual(visualList).Build(); Link diff1 = new Link.Builder("different_link").SetInertial(inertial).SetVisual(visual).SetCollision(collisionList).Build(); Link diff2 = new Link.Builder("link").SetVisual(visual).SetCollision(collisionList).Build(); Link diff3 = new Link.Builder("link").SetInertial(inertial).SetCollision(collisionList).Build(); Link diff4 = new Link.Builder("link").SetInertial(inertial).SetVisual(diffVisualList).SetCollision(collisionList).Build(); Link diff5 = new Link.Builder("link").Build(); Assert.IsTrue(link.Equals(link)); Assert.IsFalse(link.Equals(null)); Assert.IsTrue(link.Equals(same1)); Assert.IsTrue(link.Equals(same2)); Assert.IsTrue(link.Equals(same3)); Assert.IsTrue(same1.Equals(link)); Assert.IsTrue(same2.Equals(link)); Assert.IsTrue(same3.Equals(link)); Assert.IsFalse(link.Equals(diff1)); Assert.IsFalse(link.Equals(diff2)); Assert.IsFalse(link.Equals(diff3)); Assert.IsFalse(link.Equals(diff4)); Assert.IsFalse(link.Equals(diff5)); Assert.AreEqual(link.GetHashCode(), link.GetHashCode()); Assert.AreEqual(link.GetHashCode(), same1.GetHashCode()); Assert.AreEqual(link.GetHashCode(), same2.GetHashCode()); Assert.AreEqual(link.GetHashCode(), same3.GetHashCode()); Assert.AreNotEqual(link.GetHashCode(), diff1.GetHashCode()); Assert.AreNotEqual(link.GetHashCode(), diff2.GetHashCode()); Assert.AreNotEqual(link.GetHashCode(), diff3.GetHashCode()); Assert.AreNotEqual(link.GetHashCode(), diff4.GetHashCode()); Assert.AreNotEqual(link.GetHashCode(), diff5.GetHashCode()); }
public void ConstructLink() { string name = "linkName"; Inertial inertial = new Inertial(new Mass(1), new Inertia(1, 1, 1, 1, 1, 1)); List<Visual> visuals = new List<Visual>(); visuals.Add(new Visual.Builder(new Geometry(new Sphere(1))).Build()); List<Collision> collisions = new List<Collision>(); Link.Builder builder = new Link.Builder(name); builder.SetInertial(inertial); builder.SetVisual(visuals); builder.SetCollision(collisions); Link link = builder.Build(); Assert.AreEqual(name, link.Name); Assert.AreEqual(inertial, link.Inertial); Assert.AreEqual(visuals, link.Visual); Assert.AreEqual(visuals[0], link.Visual[0]); Assert.AreEqual(collisions, link.Collision); }
/// <summary> /// Parses a URDF <link> element from XML. /// </summary> /// <param name="node">The XML node of a <link> element</param> /// <returns>A Link object parsed from the XML</returns> public override Link Parse(XmlNode node) { ValidateXmlNode(node); XmlAttribute nameAttribute = GetAttributeFromNode(node, UrdfSchema.NAME_ATTRIBUTE_NAME); XmlElement inertialElement = GetElementFromNode(node, UrdfSchema.INERTIAL_ELEMENT_NAME); XmlNodeList Visuals = node.SelectNodes(UrdfSchema.VISUAL_ELEMENT_NAME); XmlNodeList collisionElements = node.SelectNodes(UrdfSchema.COLLISION_ELEMENT_NAME); Link.Builder builder; if (nameAttribute == null) { LogMissingRequiredAttribute(UrdfSchema.NAME_ATTRIBUTE_NAME); builder = new Link.Builder(Link.DEFAULT_NAME); } else { builder = new Link.Builder(nameAttribute.Value); } if (inertialElement != null) { builder.SetInertial(this.inertialParser.Parse(inertialElement)); } if (Visuals != null) { builder.SetVisual(ParseVisuals(Visuals)); } if (collisionElements != null) { builder.SetCollision(ParseCollisions(collisionElements)); } return(builder.Build()); }
public void ConstructLinkNoName() { Link link = new Link.Builder("").Build(); }
public void BuilderNullCollision() { Collision collision = null; Link link = new Link.Builder("link").SetCollision(collision).Build(); }
private Joint.Builder ConstructBuilder(XmlAttribute nameAttribute, XmlAttribute typeAttribute, XmlElement parentElement, XmlElement childElement) { string name; Joint.JointType type; Link parent; Link child; if (nameAttribute == null) { LogMissingRequiredAttribute(UrdfSchema.NAME_ATTRIBUTE_NAME); name = Joint.DEFAULT_NAME; } else { name = nameAttribute.Value; } if (typeAttribute == null) { LogMissingRequiredAttribute(UrdfSchema.JOINT_TYPE_ATTRIBUTE_NAME); type = Joint.JointType.Unknown; } else { type = GetJointTypeFromName(typeAttribute.Value); } if (parentElement == null) { LogMissingRequiredElement(UrdfSchema.PARENT_ELEMENT_NAME); parent = new Link.Builder(Link.DEFAULT_NAME).Build(); } else { string parentLinkName = this.parentParser.Parse(parentElement); if (!this.linkDictionary.ContainsKey(parentLinkName)) { //Logger.Warn("Unknown link name specified as <joint> parent: {0}", parentLinkName); parent = new Link.Builder(parentLinkName).Build(); } else { parent = this.linkDictionary[parentLinkName]; } } if (childElement == null) { LogMissingRequiredElement(UrdfSchema.CHILD_ELEMENT_NAME); child = new Link.Builder(Link.DEFAULT_NAME).Build(); } else { string childLinkName = this.childParser.Parse(childElement); if (!this.linkDictionary.ContainsKey(childLinkName)) { //Logger.Warn("Unknown link name specified as <joint> child: {0}", childLinkName); child = new Link.Builder(childLinkName).Build(); } else { child = this.linkDictionary[childLinkName]; } } return(new Joint.Builder(name, type, parent, child)); }
public void BuilderNullCollisionList() { List<Collision> collision = null; Link link = new Link.Builder("link").SetCollision(collision).Build(); }
public void BuilderNullInertial() { Link link = new Link.Builder("link").SetInertial(null).Build(); }
public void BuilderNullVisualList() { List<Visual> visual = null; Link link = new Link.Builder("link").SetVisual(visual).Build(); }
public void BuilderNullVisual() { Visual visual = null; Link link = new Link.Builder("link").SetVisual(visual).Build(); }