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

Executing some tests fail #6

Open
JohannesLichtenberger opened this issue Aug 28, 2020 · 2 comments
Open

Executing some tests fail #6

JohannesLichtenberger opened this issue Aug 28, 2020 · 2 comments

Comments

@JohannesLichtenberger
Copy link

Hi,

I want to port your Adaptive Radix Trie to my little database project (https://github.com/sirixdb/sirix) and make it a persistent datastructure + write it to and read it from disk :-)

Currently some tests fail, as attached because of missing default constructors. I have to admit it's not obvious to me how they can be run at all.

Screenshot from 2020-08-28 16-29-03

Another thing is that the system needs fine granular, fast, random reads to read the variable sized nodes (so, hopefully Optane Memory will be the thing). Furthermore the leaf nodes of the trie can be versioned (storing from the parent node/page a bunch of references to retrieve partial nodes or page-fragments in the SirixDB terminology. I maybe will try to store them within the last InnerNode and version the InnerNodes which then have embedded leaf nodes.This way, only changed records will be stored + some records which are outside of a sliding window (so, if only one value, that is record has been added, it will only store this one and fetch others from previous revisions).

I'm also in contact with Robert Binna for a HOT version, but I think I won't have that much time to start completely from scratch and I'm not really familiar with C++, so reading his Open Source version is not easy for me.

Kind regards and thanks for the great work.

Have a great weekend
Johannes

@rohansuri
Copy link
Owner

Hi @JohannesLichtenberger, your project sounds interesting! I have some questions but I'll ask them later after learning more about your project.

The tests you mentioned are not to be run directly. They are used as base classes for other JUnit3 style tests present in com.github.rohansuri.art.acc (acc = Apache Commons Collections). For example the ARTStringTest that inherits AbstractNavigableMapTest. I will package them better to separate JUnit4 tests from JUnit3 tests. Both style of tests exist in the project because I inherited some of them from ACC which are in JUnit3 style.

The error message correctly complains:

junit.framework.AssertionFailedError: Class com.github.rohansuri.art.NavigableKeySetStringTest has no public constructor TestCase(String name) or TestCase()

which is a requirement for JUnit3 style tests. All the tests in *.acc have the required ctor and those can be directly run.

For some reason, the command gradle test testJUnit4 seems to correctly classify them and not run them as a top level test. I'd suggest you use gradle for the time being.

@JohannesLichtenberger
Copy link
Author

Sadly it's going to be executed with JUnit 4 with gradle test or gradlew clean build --info --stacktrace --refresh-dependencies. Thanks for your interest in the project, that's great :-)

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

2 participants