NX01: First lehmer dial codes and more kaas odeur numbers things
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1m23s
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1m23s
This commit is contained in:
parent
b7c933470b
commit
af78169898
92 changed files with 985 additions and 287 deletions
|
|
@ -91,11 +91,10 @@ public record NetherToneSlugView(
|
|||
return buf.toString();
|
||||
}
|
||||
|
||||
public List<Class<?>> toNetherTones(int idx) {
|
||||
Class<?> qClass = qClass(idx);
|
||||
public List<Class<?>> toNetherTones() {
|
||||
List<Class<?>> result = new ArrayList<>(11);
|
||||
for (int i = 0; i < 11; i++) {
|
||||
Class<?> subClass = qClass.getPermittedSubclasses()[i];
|
||||
Class<?> subClass = NetherToneScript.class.getPermittedSubclasses()[i];
|
||||
Class<?>[] valueClasses = subClass.getPermittedSubclasses();
|
||||
result.add(switch (i) {
|
||||
case 0: yield valueClasses[ag1];
|
||||
|
|
@ -108,30 +107,16 @@ public record NetherToneSlugView(
|
|||
case 7: yield valueClasses[db1];
|
||||
case 8: yield valueClasses[db2];
|
||||
case 9: yield valueClasses[db3];
|
||||
case 10: yield valueClasses[er0w];
|
||||
default:
|
||||
throw new IllegalArgumentException("Unexpected value: " + i);
|
||||
default: yield valueClasses[er0w];
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// TODO: idx = 0 = Q1 = maybe enum
|
||||
static private Class<?> qClass(int idx) {
|
||||
if (idx < 0) {
|
||||
throw new IllegalArgumentException("Negative Q index: " + idx);
|
||||
}
|
||||
if (idx >= 8) {
|
||||
throw new IllegalArgumentException("Outside octal Q space boundry: " + idx);
|
||||
}
|
||||
return NetherTone.class.getPermittedSubclasses()[idx];
|
||||
}
|
||||
|
||||
static NetherToneSlugView ofQSluq(int idx, Class<? extends NetherTone> q) {
|
||||
Class<?> qClass = qClass(idx);
|
||||
static NetherToneSlugView ofQSluq(Class<? extends NetherToneScript> q) {
|
||||
int[] d = new int[11];
|
||||
int dataIdx = 0;
|
||||
for (Class<?> subClass : qClass.getPermittedSubclasses()) {
|
||||
for (Class<?> subClass : NetherToneScript.class.getPermittedSubclasses()) {
|
||||
boolean hasValue = false;
|
||||
Class<?>[] valueClasses = subClass.getPermittedSubclasses();
|
||||
for (int i = 0; i < valueClasses.length; i++) {
|
||||
|
|
@ -150,9 +135,8 @@ public record NetherToneSlugView(
|
|||
return new NetherToneSlugView(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10]);
|
||||
}
|
||||
|
||||
static boolean slugPresent(int idx, Class<? extends NetherTone> q) {
|
||||
Class<?> qClass = qClass(idx);
|
||||
for (Class<?> subClass : qClass.getPermittedSubclasses()) {
|
||||
static boolean slugPresent(Class<? extends NetherToneScript> q) {
|
||||
for (Class<?> subClass : NetherToneScript.class.getPermittedSubclasses()) {
|
||||
boolean hasValue = false;
|
||||
for (Class<?> valueClass : subClass.getPermittedSubclasses()) {
|
||||
if (valueClass.isAssignableFrom(q)) {
|
||||
|
|
|
|||
|
|
@ -70,14 +70,14 @@ public class NetherToneSlugViewTest {
|
|||
@Test
|
||||
public void testSlugViewErr() {
|
||||
Assertions.assertThrows(IllegalArgumentException.class, () -> {
|
||||
NetherToneSlugView.ofQSluq(0, Q1SlugExampleErr.class);
|
||||
NetherToneSlugView.ofQSluq(Q1SlugExampleErr.class);
|
||||
});
|
||||
Assertions.assertFalse(NetherToneSlugView.slugPresent(0, Q1SlugExampleErr.class));
|
||||
Assertions.assertFalse(NetherToneSlugView.slugPresent(Q1SlugExampleErr.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSlugViewParse() {
|
||||
NetherToneSlugView slug = NetherToneSlugView.ofQSluq(0, Q1SlugExample.class);
|
||||
NetherToneSlugView slug = NetherToneSlugView.ofQSluq(Q1SlugExample.class);
|
||||
Assertions.assertNotNull(slug);
|
||||
Assertions.assertEquals(0, slug.ag1());
|
||||
Assertions.assertEquals(1, slug.ag2());
|
||||
|
|
@ -86,9 +86,9 @@ public class NetherToneSlugViewTest {
|
|||
|
||||
@Test
|
||||
public void testSlugViewDecompose() {
|
||||
NetherToneSlugView slug = NetherToneSlugView.ofQSluq(0, Q1SlugExample.class);
|
||||
NetherToneSlugView slug = NetherToneSlugView.ofQSluq(Q1SlugExample.class);
|
||||
Assertions.assertNotNull(slug);
|
||||
List<Class<?>> result = slug.toNetherTones(0);
|
||||
List<Class<?>> result = slug.toNetherTones();
|
||||
Assertions.assertNotNull(result);
|
||||
Assertions.assertEquals(ᐊᐪᔆAG1.ᐅ00.class, result.get(0));
|
||||
Assertions.assertEquals(ᐊᐪᔆAG2.ᐅ01.class, result.get(1));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue