Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/Project Suggestion: CAOS Compatibility Kit? :> #43

Open
PuppyPi opened this issue May 21, 2021 · 2 comments
Open

Feature/Project Suggestion: CAOS Compatibility Kit? :> #43

PuppyPi opened this issue May 21, 2021 · 2 comments

Comments

@PuppyPi
Copy link

PuppyPi commented May 21, 2021

I just had an idea while looking at Java things.
In Java there's something called the Java Compatibility Kit. It's basically a massive amount of Java code that runs and just does nothing. At least it does nothing if the implementation of Java is correct! ;D

So it's a testing library, not for testing code adjacent to the tests' code, but for testing the language itself! (a particular implementation of it, that is (like an "engine"!))

I saw talk of testing cases mentioned here :>
I wonder if this would be something people want to do / help with! :>

Just writing a bunch of CAOS code (tests) which do nothing if the engine is correct and fail if not XD (or maybe they "return" true or false, like maybe create an agent with a particular classifier and then store info in the NAME variables like AlbianWarp does? we can have a mix of various levels of if and how much data is "returned" if returning data is supported :> )

And then we group them together and call them the CAOS Compatibility Kit! :D
And it's used to help test if engines are CAOS "Standards Compliant" XD
(Understanding there may be false positives but not false negatives. Ie, there might not be a test for everything, but if it fails a test that is there, then something's definitely wrong!)

@PuppyPi
Copy link
Author

PuppyPi commented May 23, 2021

Oh I forgot to write this ^^'

We could also separate things into three groups if we wanted :3
• CAOS itself (like doif, setv, mame, etc.)
• Inanimate Content (like the map, physics, sprites, etc.)
• Creatures Content (the actual creatures, brains, genetics, etc.)

Largely for two reasons:

  1. Then CAOS-itself things could be very easily tested on a platform that supports running caos outside of a game without such content :3
  2. OpenC2E and CaoticDreams don't implement the "Creatures Content" part here and probably won't for some time (at least not to the level of perfection that this would be testing for!), so it's probably good to separate that out ^^'

We could make tags for these levels if not already! :D

@PuppyPi
Copy link
Author

PuppyPi commented May 23, 2021

So by docs category here's my rough approximate suggestions :3
(If only to clarify what I meant by the three suggested levels of CAOS)

(1 = CAOS itself)
(2 = Non-creatures Game World Content or other optional things)
(3 = Creatures Content)

• Agents = Mix of 1 and 2
• Brain = 3
• Camera = 2
• CD Player = 2 ("other optional things" XD )
• Compounds = 2
• Creatures = 3
• Debug = Mix of all of them
• Files = 1
• Flow = 1
• Genetics = 3
• History = 3
• Input = 2 ("other optional things")
• Map = 2
• Motion = 2
• Net = 2 ("other optional things")
• Ports = 2
• Resources = 1 for Catalogues (for i18n), 2 for PRAY ("other optional things")
• Scripts = 1
• Sounds = 2 ("other optional things")
• Time = 1 for tick-things, 2 for calendar things
• Variables = 1
• Vehicles = 2
• World = 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant