Skip to content

Support get_entity, put_entity, columns of Widecolumns #126

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

Merged
merged 14 commits into from
May 15, 2024
Merged

Conversation

Congyuwang
Copy link
Collaborator

No description provided.

Comment on lines 457 to 546
class TestWideColumnsRaw(unittest.TestCase):
test_dict = None
opt = None
path = "./temp_wide_columns_raw"

@classmethod
def setUpClass(cls) -> None:
cls.opt = Options(True)
cls.opt.create_if_missing(True)
cls.test_dict = Rdict(cls.path, cls.opt)

def test_put_wide_columns(self):
self.test_dict.put_entity(key=b"Guangdong", names=[b"language", b"city"], values=[b"Cantonese", b"Shenzhen"]);
self.test_dict.put_entity(key=b"Sichuan", names=[b"language", b"city"], values=[b"Mandarin", b"Chengdu"]);
self.assertEqual(self.test_dict.get_entity(b"Guangdong"), [(b"city", b"Shenzhen"), (b"language", b"Cantonese")])
self.assertEqual(self.test_dict.get_entity(b"Sichuan"), [(b"city", b"Chengdu"), (b"language", b"Mandarin")])
# overwrite
self.test_dict.put_entity(key=b"Sichuan", names=[b"language", b"city"], values=[b"Sichuanhua", b"Chengdu"]);
self.test_dict[b"Beijing"] = b"Beijing"

# assertions
self.assertEqual(self.test_dict.get_entity(b"Beijing"), [(b"", b"Beijing")])
self.assertEqual(self.test_dict.get_entity(b"Guangdong"), [(b"city", b"Shenzhen"), (b"language", b"Cantonese")])
self.assertEqual(self.test_dict.get_entity(b"Sichuan"), [(b"city", b"Chengdu"), (b"language", b"Sichuanhua")])

it = self.test_dict.iter()
it.seek_to_first()
self.assertTrue(it.valid())
self.assertEqual(it.key(), b"Beijing")
self.assertEqual(it.columns(), [(b"", b"Beijing")])
it.next()
self.assertTrue(it.valid())
self.assertEqual(it.key(), b"Guangdong")
self.assertEqual(it.columns(), [(b"city", b"Shenzhen"), (b"language", b"Cantonese")])
it.next()
self.assertTrue(it.valid())
self.assertEqual(it.key(), b"Sichuan")
self.assertEqual(it.columns(), [(b"city", b"Chengdu"), (b"language", b"Sichuanhua")])

@classmethod
def tearDownClass(cls):
del cls.test_dict
Rdict.destroy(cls.path, cls.opt)


class TestWideColumns(unittest.TestCase):
test_dict = None
opt = None
path = "./temp_wide_columns"

@classmethod
def setUpClass(cls) -> None:
cls.opt = Options()
cls.opt.create_if_missing(True)
cls.test_dict = Rdict(cls.path, cls.opt)

def test_put_wide_columns(self):
self.test_dict.put_entity(key="Guangdong", names=["language", "city"], values=["Cantonese", "Shenzhen"]);
self.test_dict.put_entity(key="Sichuan", names=["language", "city"], values=["Mandarin", "Chengdu"]);
self.assertEqual(self.test_dict.get_entity("Guangdong"), [("city", "Shenzhen"), ("language", "Cantonese")])
self.assertEqual(self.test_dict.get_entity("Sichuan"), [("city", "Chengdu"), ("language", "Mandarin")])
# overwrite
self.test_dict.put_entity(key="Sichuan", names=["language", "city"], values=["Sichuanhua", "Chengdu"]);
self.test_dict["Beijing"] = "Beijing"

# assertions
self.assertEqual(self.test_dict.get_entity("Beijing"), [("", "Beijing")])
self.assertEqual(self.test_dict.get_entity("Guangdong"), [("city", "Shenzhen"), ("language", "Cantonese")])
self.assertEqual(self.test_dict.get_entity("Sichuan"), [("city", "Chengdu"), ("language", "Sichuanhua")])

it = self.test_dict.iter()
it.seek_to_first()
self.assertTrue(it.valid())
self.assertEqual(it.key(), "Beijing")
self.assertEqual(it.columns(), [("", "Beijing")])
it.next()
self.assertTrue(it.valid())
self.assertEqual(it.key(), "Guangdong")
self.assertEqual(it.columns(), [("city", "Shenzhen"), ("language", "Cantonese")])
it.next()
self.assertTrue(it.valid())
self.assertEqual(it.key(), "Sichuan")
self.assertEqual(it.columns(), [("city", "Chengdu"), ("language", "Sichuanhua")])

@classmethod
def tearDownClass(cls):
del cls.test_dict
Rdict.destroy(cls.path, cls.opt)


Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example.

@Congyuwang Congyuwang merged commit 88724dc into main May 15, 2024
@Congyuwang Congyuwang deleted the widecolumns branch May 15, 2024 05:06
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

Successfully merging this pull request may close these issues.

1 participant