Skip to content

Commit

Permalink
refactor: crdt folder structure (#119)
Browse files Browse the repository at this point in the history
  • Loading branch information
d-roak authored Aug 25, 2024
1 parent 0933078 commit 20789f5
Show file tree
Hide file tree
Showing 18 changed files with 42 additions and 41 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
12 changes: 8 additions & 4 deletions packages/crdt/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
export * from "./builtins/GCounter/index.js";
export * from "./builtins/PNCounter/index.js";
export * from "./builtins/GSet/index.js";
export * from "./builtins/2PSet/index.js";
export * from "./crdts/2PSet/index.js"
export * from "./crdts/GCounter/index.js";
export * from "./crdts/GSet/index.js";
export * from "./crdts/IPSet/index.js";
export * from "./crdts/LWWElementSet/index.js";
export * from "./crdts/LWWRegister/index.js";
export * from "./crdts/PNCounter/index.js";
export * from "./crdts/RGA/index.js";
8 changes: 4 additions & 4 deletions packages/crdt/tests/GCounter.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { describe, test, expect, beforeEach } from "vitest";
import { GCounter } from "../src/builtins/GCounter";
import { GCounter } from "../src/crdts/GCounter/index.js";

describe("G-Counter Tests", () => {
let set1: GCounter;
Expand Down Expand Up @@ -31,12 +31,12 @@ describe("G-Counter Tests", () => {

test("Test Merge", () => {
let set2 = new GCounter({ "node1": 3, "node2": 10});
let set3 = new GCounter({ "node1": 5, "node3": 15});
let set3 = new GCounter({ "node1": 5, "node3": 15});

expect(set1.counts).toEqual({"node1": 5, "node2": 10});
set2.merge(set1);
expect(set2.counts).toEqual({"node1": 5, "node2": 10});
set1.merge(set3);
expect(set1.counts).toEqual({"node1": 5, "node2": 10, "node3": 15});
});
});
});
6 changes: 3 additions & 3 deletions packages/crdt/tests/GSet.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { describe, test, expect, beforeEach, afterEach } from "vitest";
import { GSet } from "../src/builtins/GSet";
import { GSet } from "../src/crdts/GSet/index.js";

describe("G-Set Tests", () => {

Expand Down Expand Up @@ -41,6 +41,6 @@ describe("G-Set Tests", () => {
set2.merge(set1);

expect(set1.compare(set2)).toBe(true);

});
});
});
4 changes: 2 additions & 2 deletions packages/crdt/tests/IPSet.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { describe, test, expect, beforeEach } from "vitest";
import { IPSet } from "../src/builtins/IPSet";
import { GCounter } from "../src/builtins/GCounter";
import { IPSet } from "../src/crdts/IPSet/index.js";
import { GCounter } from "../src/crdts/GCounter/index.js";

describe("Infinite-phase set Tests", () => {
const peerId = "node";
Expand Down
20 changes: 10 additions & 10 deletions packages/crdt/tests/LWWElementSet.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { describe, test, expect, beforeEach } from "vitest";
import { LWWElementSet, Bias } from "../src/builtins/LWWElementSet";
import { LWWElementSet, Bias } from "../src/crdts/LWWElementSet/index.js";

describe("LWW-Element-Set Tests", () => {
const testValues = ["walter", "jesse", "mike"];
Expand Down Expand Up @@ -31,7 +31,7 @@ describe("LWW-Element-Set Tests", () => {
expect(set1.lookup("mike")).toBe(true);

set1.getRemoves().set("mike", Date.now() + 1);

expect(set1.lookup("mike")).toBe(false);
});

Expand All @@ -52,25 +52,25 @@ describe("LWW-Element-Set Tests", () => {
// Adding different names to each set
set1.add("gustavo");
set2.add("saul");

expect(set1.compare(set2)).toBe(false);

set1.merge(set2);
set2.merge(set1);

expect(set1.compare(set2)).toBe(true);
});

test("Same Element, different Timestamps", () => {
const timestamp = Date.now();
set1.getAdds().set("gustavo", timestamp);
set2.getAdds().set("gustavo", timestamp + 5);

expect(set1.getAdds().get("gustavo")).toBe(timestamp);

set1.merge(set2);
set2.merge(set1);

expect(set1.getAdds().get("gustavo")).toBe(timestamp + 5);
expect(set2.getAdds().get("gustavo")).toBe(timestamp + 5);
});
Expand All @@ -82,9 +82,9 @@ describe("LWW-Element-Set Tests", () => {
set2.getRemoves().set("gustavo", timestamp + 5);

set1.merge(set2);

expect(set1.lookup("gustavo")).toBe(false);
expect(set1.getRemoves().get("gustavo")).toBe(timestamp + 5);
});
});
});
});
6 changes: 3 additions & 3 deletions packages/crdt/tests/LWWRegister.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { describe, test, expect, beforeEach, vi } from "vitest";
import { LWWRegister } from "../src/builtins/LWWRegister/index.ts";
import { LWWRegister } from "../src/crdts/LWWRegister/index.js";

describe('LWW-Register Tests', () => {
test('Test Assign', () => {
Expand All @@ -20,7 +20,7 @@ describe('LWW-Register Tests', () => {
let register1 = new LWWRegister<string>("alice", "node1");

vi.useRealTimers();

let register2 = new LWWRegister<string>("alice", "node2");

expect(register1.compare(register2)).toEqual(true);
Expand Down Expand Up @@ -61,4 +61,4 @@ describe('LWW-Register Tests', () => {

vi.useRealTimers();
});
});
});
12 changes: 6 additions & 6 deletions packages/crdt/tests/PNCounter.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { describe, test, expect, beforeEach, afterEach } from "vitest";
import { PNCounter } from "../src/builtins/PNCounter";
import { GCounter } from "../src/builtins/GCounter";
import { describe, test, expect, beforeEach } from "vitest";
import { PNCounter } from "../src/crdts/PNCounter/index.js";
import { GCounter } from "../src/crdts/GCounter/index.js";

describe("PN-Counter Tests", () => {
let set1: PNCounter;
Expand Down Expand Up @@ -42,10 +42,10 @@ describe("PN-Counter Tests", () => {
set1.increment("node1",10);
set2.decrement("node2",5);
expect(set1.compare(set2)).toBe(false);
expect(set2.compare(set1)).toBe(false);
expect(set2.compare(set1)).toBe(false);
set1.merge(set2);
set2.merge(set1);
expect(set1.compare(set2)).toBe(true);
expect(set2.compare(set1)).toBe(true);
expect(set2.compare(set1)).toBe(true);
});
});
});
12 changes: 6 additions & 6 deletions packages/crdt/tests/TwoPSet.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { describe, test, expect, beforeEach } from "vitest";
import { TwoPSet } from "../src/builtins/2PSet";
import { GSet } from "../src/builtins/GSet";
import { TwoPSet } from "../src/crdts/2PSet/index.js";
import { GSet } from "../src/crdts/GSet/index.js";

describe("2P-Set Tests", () => {

Expand All @@ -22,7 +22,7 @@ describe("2P-Set Tests", () => {

test("Test Remove Element", () => {
expect(set1.lookup("mike")).toBe(true);

set1.remove("mike");

expect(set1.lookup("mike")).toBe(false);
Expand All @@ -37,13 +37,13 @@ describe("2P-Set Tests", () => {

set2.remove("mike");

expect(set1.compare(set2)).toBe(true);
expect(set1.compare(set2)).toBe(true);
});

test("Test Merge Elements", () => {
set1.remove("mike");
set2.add("gustavo");

expect(set1.compare(set2)).toBe(false);

set1.merge(set2);
Expand All @@ -52,4 +52,4 @@ describe("2P-Set Tests", () => {
expect(set1.compare(set2)).toBe(true);
});

});
});
3 changes: 0 additions & 3 deletions packages/crdt/tests/index.test.ts

This file was deleted.

0 comments on commit 20789f5

Please sign in to comment.