From beebf3e7c84401452397799be6135f0e258f8cb3 Mon Sep 17 00:00:00 2001 From: naninunenoy Date: Sun, 15 Nov 2020 23:29:49 +0900 Subject: [PATCH] HashSetDependencyNode --- .../DependencyNode/HashSetDependencyNode.cs | 15 +++++++++ .../HashSetDependencyNode.cs.meta | 3 ++ .../Editor/DependencyNode/IDependencyNode.cs | 9 +++++ .../DependencyNode/IDependencyNode.cs.meta | 3 ++ .../Editor/DependencyNode/NodeProfile.cs | 33 ++++++++++++------- .../Tests/HashSetDependencyNodeTest.cs | 19 +++++++++++ .../Tests/HashSetDependencyNodeTest.cs.meta | 3 ++ .../DependencyNode/Tests/NodeProfileTest.cs | 12 +++++-- 8 files changed, 83 insertions(+), 14 deletions(-) create mode 100644 Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs create mode 100644 Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs.meta create mode 100644 Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs create mode 100644 Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs.meta create mode 100644 Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs create mode 100644 Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs.meta diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs new file mode 100644 index 0000000..7b82076 --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode { + public class HashSetDependencyNode : IDependencyNode { + public NodeProfile Profile { get; } + public ICollection Sources { get; } + public ICollection Destinations { get; } + + public HashSetDependencyNode(NodeProfile profile) { + Profile = profile; + Sources = new HashSet(); + Destinations = new HashSet(); + } + } +} diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs.meta b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs.meta new file mode 100644 index 0000000..dc53403 --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/HashSetDependencyNode.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3b278ba5cdda49eca5f5aa0b2941713d +timeCreated: 1605450089 \ No newline at end of file diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs new file mode 100644 index 0000000..ce222ff --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode { + public interface IDependencyNode { + NodeProfile Profile { get; } + ICollection Sources { get; } + ICollection Destinations { get; } + } +} diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs.meta b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs.meta new file mode 100644 index 0000000..6f7f7cd --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/IDependencyNode.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 365c6defe4c649a496963187a24ffca0 +timeCreated: 1605449577 \ No newline at end of file diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/NodeProfile.cs b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/NodeProfile.cs index aad6031..8d60374 100644 --- a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/NodeProfile.cs +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/NodeProfile.cs @@ -1,26 +1,35 @@ using System; namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode { - public readonly struct NodeProfile : IEquatable { - public readonly NodeId id; - public readonly string name; + public class NodeProfile : IEquatable { + public NodeId Id { get; } + public string Name { set; get; } public NodeProfile(NodeId id, string name) { - this.id = id; - this.name = name; + Id = id; + Name = name; } - public bool Equals(NodeProfile other) { - return id.Equals(other.id) && name == other.name; + public bool Equals(NodeProfile other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + return Id.Equals(other.Id) && Name == other.Name; } - public override bool Equals(object obj) { - return obj is NodeProfile other && Equals(other); + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + if (obj.GetType() != this.GetType()) return false; + return Equals((NodeProfile) obj); } - public override int GetHashCode() { - unchecked { - return (id.GetHashCode() * 397) ^ (name != null ? name.GetHashCode() : 0); + public override int GetHashCode() + { + unchecked + { + return (Id.GetHashCode() * 397) ^ (Name != null ? Name.GetHashCode() : 0); } } } diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs new file mode 100644 index 0000000..d588ad8 --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs @@ -0,0 +1,19 @@ +using System.Collections; +using NUnit.Framework; +using UnityEditor; +using UnityEngine.TestTools; + +namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests { + public class HashSetDependencyNodeTest { + + [Test] + public void TestHashSetDependencyNode() { + var node = new HashSetDependencyNode(new NodeProfile(new NodeId(1), "node")); + Assert.That(node, Is.InstanceOf()); + Assert.That(node.Profile.Id, Is.EqualTo(1)); + Assert.That(node.Profile.Name, Is.EqualTo("node")); + Assert.That(node.Sources, Is.Empty); + Assert.That(node.Destinations, Is.Empty); + } + } +} diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs.meta b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs.meta new file mode 100644 index 0000000..d321d6c --- /dev/null +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/HashSetDependencyNodeTest.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cd573c4b7c3d450da36047e4e1e03824 +timeCreated: 1605450304 \ No newline at end of file diff --git a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/NodeProfileTest.cs b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/NodeProfileTest.cs index de2d753..e2019b4 100644 --- a/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/NodeProfileTest.cs +++ b/Assets/AsmdefHelper/DependencyGraph/Editor/DependencyNode/Tests/NodeProfileTest.cs @@ -9,8 +9,8 @@ namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests { [Test] public void TestNodeProfile() { var nodeProfile = new NodeProfile(new NodeId(123), "testNode"); - Assert.That(nodeProfile.id.value, Is.EqualTo(123)); - Assert.That(nodeProfile.name, Is.EqualTo("testNode")); + Assert.That(nodeProfile.Id.value, Is.EqualTo(123)); + Assert.That(nodeProfile.Name, Is.EqualTo("testNode")); } [Test] @@ -24,5 +24,13 @@ namespace AsmdefHelper.DependencyGraph.Editor.DependencyNode.Tests { Assert.That(profile1, Is.Not.EqualTo(profile3)); Assert.That(profile1, Is.EqualTo(profile4)); } + + + [Test] + public void TestNodeProfileName() { + var nodeProfile = new NodeProfile(new NodeId(123), "hoge"); + nodeProfile.Name = "testNode"; + Assert.That(nodeProfile.Name, Is.EqualTo("testNode")); + } } }