Skip to content

Commit b67394c

Browse files
committed
Initial Commit
1 parent 28edd69 commit b67394c

24 files changed

+1521
-0
lines changed

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "nuget"
4+
directory: "/WellKnownDataTypes/"
5+
schedule:
6+
interval: "daily"
7+
open-pull-requests-limit: 5
8+
- package-ecosystem: "nuget"
9+
directory: "/WellKnownDataTypes-Tests/"
10+
schedule:
11+
interval: "daily"
12+
open-pull-requests-limit: 5

.github/workflows/main.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build & Test
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
build:
13+
strategy:
14+
matrix:
15+
os: [ubuntu-latest, windows-latest, macos-latest]
16+
dotnet-version: [ '6.0', '7.0', '8.0' ]
17+
fail-fast: false
18+
runs-on: ${{ matrix.os }}
19+
20+
steps:
21+
- uses: actions/checkout@v4.1.1
22+
- name: Setup .NET Core
23+
uses: actions/setup-dotnet@v4
24+
with:
25+
dotnet-version: ${{ matrix.dotnet-version }}
26+
- name: Install dependencies
27+
run: dotnet restore
28+
- name: Build
29+
run: dotnet build --configuration Release --no-restore
30+
- name: Test
31+
run: dotnet test --framework net${{ matrix.dotnet-version }} --collect:"XPlat Code Coverage" --no-restore --verbosity normal --logger trx --results-directory "TestResults-${{ matrix.os }} ${{ matrix.dotnet-version }}"
32+
- name: Upload a Build Artifact
33+
if: ${{ failure() || success() }}
34+
uses: actions/upload-artifact@v4.3.1
35+
with:
36+
name: ${{ matrix.os }} ${{ matrix.dotnet-version }}
37+
path: |
38+
WellKnownDataTypes-Tests/bin/*/net${{ matrix.dotnet-version }}/log.txt
39+
TestResults-${{ matrix.os }} ${{ matrix.dotnet-version }}
40+
WellKnownDataTypes/bin/Release/net${{ matrix.dotnet-version }}/WellKnownDataTypes.dll
41+
retention-days: 2
42+
continue-on-error: true
43+

.github/workflows/release.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Publish Packages to nuget
2+
3+
on:
4+
release:
5+
types: [created]
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v4.1.4
13+
- name: Setup .NET Core
14+
uses: actions/setup-dotnet@v4
15+
with:
16+
dotnet-version: |
17+
6.0.x
18+
7.0.x
19+
8.0.x
20+
- name: Install dependencies
21+
run: dotnet restore
22+
- name: Build
23+
run: dotnet build --configuration Release --no-restore
24+
- name: Upload a Build Artifact
25+
uses: actions/upload-artifact@v4.3.3
26+
with:
27+
path: WellKnownDataTypes/bin/Release/**/WellKnownDataTypes.dll
28+
- name: Create Nuget Package
29+
run: dotnet pack --configuration Release
30+
- name: Upload to Nuget.org
31+
run: dotnet nuget push WellKnownDataTypes/bin/Release/*WellKnownDataTypes.*.nupkg --api-key ${{secrets.NUGET_KEY}} -s https://api.nuget.org/v3/index.json
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
using org.dmxc.wkdt.Light.ArtNet;
2+
3+
namespace org.dmxc.wkdt.Tests.Light.ArtNet
4+
{
5+
public class Address_Tests
6+
{
7+
[Test]
8+
public void TestAddress()
9+
{
10+
Address a = new Address(1);
11+
Assert.Multiple(() =>
12+
{
13+
Assert.That(a.Universe.Value, Is.EqualTo(1));
14+
Assert.That(a.Combined, Is.EqualTo(1));
15+
});
16+
17+
a = new Address(15);
18+
Assert.Multiple(() =>
19+
{
20+
Assert.That(a.Universe.Value, Is.EqualTo(15));
21+
Assert.That(a.Combined, Is.EqualTo(15));
22+
});
23+
24+
a = new Address(16);
25+
Assert.Multiple(() =>
26+
{
27+
Assert.That(a.Universe.Value, Is.EqualTo(0));
28+
Assert.That(a.Subnet.Value, Is.EqualTo(1));
29+
Assert.That(a.Combined, Is.EqualTo(16));
30+
});
31+
32+
a = new Address(0xff);
33+
Assert.Multiple(() =>
34+
{
35+
Assert.That(a.Universe.Value, Is.EqualTo(15));
36+
Assert.That(a.Subnet.Value, Is.EqualTo(15));
37+
Assert.That(a.Combined, Is.EqualTo(0xff));
38+
Assert.That(new Address(16) == new Address(1, 0));
39+
Assert.That(new Address(16) != new Address(0, 1));
40+
Assert.That(new Address(16), Is.EqualTo(new Address(1, 0)));
41+
Assert.That(new Address(16), Is.Not.EqualTo(new Address(0, 1)));
42+
Assert.That(new Address(16), Is.EqualTo((object)new Address(1, 0)));
43+
Assert.That(new Address(16).GetHashCode(), Is.Not.EqualTo(new Address(0, 1).GetHashCode()));
44+
Assert.That(new Address(16).Equals((object)new Address(1, 0)), Is.True);
45+
Assert.That(new Address(16).Equals((object)new Address(0, 1)), Is.False);
46+
Assert.That(new Address(16).Equals(null), Is.False);
47+
Assert.That(new Address(16), Is.Not.EqualTo(null));
48+
Assert.That(new Address(16).ToString(), Is.Not.Empty);
49+
});
50+
51+
HashSet<Address> addresses = new HashSet<Address>();
52+
for (byte b = 0; b < byte.MaxValue; b++)
53+
{
54+
Address address = (Address)b;
55+
addresses.Add(address);
56+
Assert.That((byte)address, Is.EqualTo(b));
57+
}
58+
Assert.That(addresses, Has.Count.EqualTo(byte.MaxValue));
59+
60+
Assert.That(addresses.OrderByDescending(s => s.Universe).ThenBy(s => s).ToArray(), Has.Length.EqualTo(byte.MaxValue));
61+
}
62+
}
63+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
using org.dmxc.wkdt.Light.ArtNet;
2+
3+
namespace org.dmxc.wkdt.Tests.Light.ArtNet
4+
{
5+
public class Net_Tests
6+
{
7+
[Test]
8+
public void TestNet()
9+
{
10+
HashSet<Net> nets = new HashSet<Net>();
11+
for (byte b = 0; b < byte.MaxValue; b++)
12+
{
13+
try
14+
{
15+
Net n = (Net)b;
16+
Assert.Multiple(() =>
17+
{
18+
Assert.That(b, Is.LessThanOrEqualTo(0x7f));
19+
Assert.That(n.Value, Is.EqualTo(b));
20+
Assert.That(n.ToString(), Is.Not.Empty);
21+
});
22+
nets.Add(n);
23+
Assert.That((byte)n, Is.EqualTo(b));
24+
}
25+
catch
26+
{
27+
Assert.That(b, Is.GreaterThan(0x7f));
28+
}
29+
}
30+
Assert.Multiple(() =>
31+
{
32+
Assert.That(nets, Has.Count.EqualTo(0x7f + 1));
33+
Assert.That(nets.OrderByDescending(s => s).OrderBy(s => s.GetHashCode()).OrderBy(s => s).ToList(), Has.Count.EqualTo(0x7f + 1));
34+
});
35+
36+
Assert.Multiple(() =>
37+
{
38+
Assert.That(new Net(1) == (Net)1, Is.True);
39+
Assert.That(new Net(1) != (Net)1, Is.False);
40+
Assert.That(new Net(1) == (Net)2, Is.False);
41+
Assert.That(new Net(1) != (Net)2, Is.True);
42+
Assert.That(new Net(1).GetHashCode(), Is.EqualTo(((Net)1).GetHashCode()));
43+
Assert.That(new Net(1).GetHashCode(), Is.Not.EqualTo(((Net)2).GetHashCode()));
44+
Assert.That(new Net(1).Equals(null), Is.False);
45+
Assert.That(new Net(1).Equals((object)1), Is.False);
46+
Assert.That(new Net(1).Equals((object)(Net)1), Is.True);
47+
Assert.That(new Net(1).Equals((Net)1), Is.True);
48+
Assert.That(new Net(1).Equals((Net)2), Is.False);
49+
});
50+
}
51+
}
52+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
using org.dmxc.wkdt.Light.ArtNet;
2+
3+
namespace org.dmxc.wkdt.Tests.Light.ArtNet
4+
{
5+
public class PortAddress_Tests
6+
{
7+
[Test]
8+
public void TestPortAddress()
9+
{
10+
HashSet<PortAddress> portAddresses = new HashSet<PortAddress>();
11+
ushort count = 0;
12+
for (ushort b = 0; b < ushort.MaxValue; b++)
13+
{
14+
try
15+
{
16+
PortAddress pa = (PortAddress)b;
17+
18+
Assert.Multiple(() =>
19+
{
20+
Assert.That(b, Is.LessThanOrEqualTo(0x7fff));
21+
Assert.That(pa.Combined, Is.EqualTo(b));
22+
Assert.That(pa.ToString(), Is.Not.Empty);
23+
});
24+
portAddresses.Add(pa);
25+
Assert.That((ushort)pa, Is.EqualTo(b));
26+
count++;
27+
}
28+
catch
29+
{
30+
Assert.That(b, Is.GreaterThan(0x7fff));
31+
}
32+
}
33+
Assert.Multiple(() =>
34+
{
35+
Assert.That(portAddresses, Has.Count.EqualTo(count));
36+
Assert.That(portAddresses.OrderByDescending(s => s).OrderBy(s => s.GetHashCode()).OrderBy(s => s).ToList(), Has.Count.EqualTo(count));
37+
});
38+
39+
Assert.Multiple(() =>
40+
{
41+
Assert.That(new PortAddress((ushort)1) == new PortAddress(0, 0, 1), Is.True);
42+
Assert.That(new PortAddress((ushort)1) != new PortAddress(0, (Universe)1), Is.False);
43+
Assert.That(new PortAddress((ushort)1) != new PortAddress(0, new Address(0, 1)), Is.False);
44+
Assert.That(new PortAddress(1) == new PortAddress(0, 0, 2), Is.False);
45+
Assert.That(new PortAddress(1) != new PortAddress(0, (Universe)2), Is.True);
46+
Assert.That(new PortAddress(1).GetHashCode(), Is.EqualTo(((PortAddress)1).GetHashCode()));
47+
Assert.That(new PortAddress((ushort)1).GetHashCode(), Is.Not.EqualTo(((PortAddress)2).GetHashCode()));
48+
Assert.That(new PortAddress(1).Equals(null), Is.False);
49+
Assert.That(new PortAddress(1).Equals((object)1), Is.False);
50+
Assert.That(new PortAddress(1).Equals((object)(PortAddress)1), Is.True);
51+
Assert.That(new PortAddress(1).Equals((PortAddress)1), Is.True);
52+
Assert.That(new PortAddress(1).Equals((PortAddress)2), Is.False);
53+
});
54+
}
55+
}
56+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
using org.dmxc.wkdt.Light.ArtNet;
2+
3+
namespace org.dmxc.wkdt.Tests.Light.ArtNet
4+
{
5+
public class Subnet_Tests
6+
{
7+
[Test]
8+
public void TestSubnet()
9+
{
10+
HashSet<Subnet> subNets = new HashSet<Subnet>();
11+
for (byte b = 0; b < byte.MaxValue; b++)
12+
{
13+
try
14+
{
15+
Subnet s = (Subnet)b;
16+
17+
Assert.Multiple(() =>
18+
{
19+
Assert.That(b, Is.LessThanOrEqualTo(0xf));
20+
Assert.That(s.Value, Is.EqualTo(b));
21+
Assert.That(s.ToString(), Is.Not.Empty);
22+
});
23+
subNets.Add(s);
24+
Assert.That((byte)s, Is.EqualTo(b));
25+
}
26+
catch
27+
{
28+
Assert.That(b, Is.GreaterThan(0xf));
29+
}
30+
}
31+
Assert.Multiple(() =>
32+
{
33+
Assert.That(subNets, Has.Count.EqualTo(0xf + 1));
34+
Assert.That(subNets.OrderByDescending(s => s).OrderBy(s => s.GetHashCode()).OrderBy(s => s).ToList(), Has.Count.EqualTo(0xf + 1));
35+
});
36+
37+
Assert.Multiple(() =>
38+
{
39+
Assert.That(new Subnet(1) == (Subnet)1, Is.True);
40+
Assert.That(new Subnet(1) != (Subnet)1, Is.False);
41+
Assert.That(new Subnet(1) == (Subnet)2, Is.False);
42+
Assert.That(new Subnet(1) != (Subnet)2, Is.True);
43+
Assert.That(new Subnet(1).GetHashCode(), Is.EqualTo(((Subnet)1).GetHashCode()));
44+
Assert.That(new Subnet(1).GetHashCode(), Is.Not.EqualTo(((Subnet)2).GetHashCode()));
45+
Assert.That(new Subnet(1).Equals(null), Is.False);
46+
Assert.That(new Subnet(1).Equals((object)1), Is.False);
47+
Assert.That(new Subnet(1).Equals((object)(Subnet)1), Is.True);
48+
Assert.That(new Subnet(1).Equals((Subnet)1), Is.True);
49+
Assert.That(new Subnet(1).Equals((Subnet)2), Is.False);
50+
Assert.That(new Subnet(0).Equals(Subnet.Default), Is.True);
51+
});
52+
}
53+
}
54+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
using org.dmxc.wkdt.Light.ArtNet;
2+
3+
namespace org.dmxc.wkdt.Tests.Light.ArtNet
4+
{
5+
public class Universe_Tests
6+
{
7+
[Test]
8+
public void TestUniverse()
9+
{
10+
HashSet<Universe> universes = new HashSet<Universe>();
11+
for (byte b = 0; b < byte.MaxValue; b++)
12+
{
13+
try
14+
{
15+
Universe u = (Universe)b;
16+
Assert.Multiple(() =>
17+
{
18+
Assert.That(b, Is.LessThanOrEqualTo(0xf));
19+
Assert.That(u.Value, Is.EqualTo(b));
20+
Assert.That(u.ToString(), Is.Not.Empty);
21+
});
22+
universes.Add(u);
23+
Assert.That((byte)u, Is.EqualTo(b));
24+
}
25+
catch
26+
{
27+
Assert.That(b, Is.GreaterThan(0xf));
28+
}
29+
}
30+
Assert.Multiple(() =>
31+
{
32+
Assert.That(universes, Has.Count.EqualTo(0xf + 1));
33+
Assert.That(universes.OrderByDescending(s => s).OrderBy(s => s.GetHashCode()).OrderBy(s => s).ToList(), Has.Count.EqualTo(0xf + 1));
34+
});
35+
36+
Assert.Multiple(() =>
37+
{
38+
Assert.That(new Universe(1) == (Universe)1, Is.True);
39+
Assert.That(new Universe(1) != (Universe)1, Is.False);
40+
Assert.That(new Universe(1) == (Universe)2, Is.False);
41+
Assert.That(new Universe(1) != (Universe)2, Is.True);
42+
Assert.That(new Universe(1).GetHashCode(), Is.EqualTo(((Universe)1).GetHashCode()));
43+
Assert.That(new Universe(1).GetHashCode(), Is.Not.EqualTo(((Universe)2).GetHashCode()));
44+
Assert.That(new Universe(1).Equals(null), Is.False);
45+
Assert.That(new Universe(1).Equals((object)1), Is.False);
46+
Assert.That(new Universe(1).Equals((object)(Universe)1), Is.True);
47+
Assert.That(new Universe(1).Equals((Universe)1), Is.True);
48+
Assert.That(new Universe(1).Equals((Universe)2), Is.False);
49+
Assert.That(new Universe(0).Equals(Universe.Default), Is.True);
50+
});
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)