kisch 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,115 @@
1
+ import {openSchematic} from "../src/Schematic.js";
2
+
3
+ describe("schematic",()=>{
4
+ it("can open a schematic",async ()=>{
5
+ let schematic=await openSchematic("spec/kitest.kicad_sch",{
6
+ symbolLibraryPath: "/home/micke/Repo.ext/kicad-symbols"
7
+ });
8
+
9
+ //console.log(schematic.getEntities().length);
10
+
11
+ expect(schematic.getEntities().length).toEqual(12);
12
+ //console.log(schematic);
13
+ for (let entity of schematic.getEntities()) {
14
+ //console.log(entity.getReference());
15
+ //console.log(entity.getType(),": ",entity.getConnectionPoints());
16
+ }
17
+
18
+ let j1=schematic.sym("J1");
19
+ let j2=schematic.sym("J2");
20
+
21
+ //console.log(j1.pin(1).isConnected(j2.pin(2)));
22
+ expect(j1.pin(1).isConnected(j2.pin(2))).toEqual(true);
23
+
24
+ //console.log(j1.pin(1).isConnected(j2.pin(1)));
25
+ expect(j1.pin(1).isConnected(j2.pin(1))).toEqual(false);
26
+
27
+ let p1=j1.pin(1).getPoint();
28
+ expect(p1).toEqual([ 81.28, 71.12 ]);
29
+
30
+ let entities=schematic.getEntitiesByConnectionPoint(p1);
31
+ expect(entities.length).toEqual(2);
32
+ //console.log(entities);
33
+ //expect().toEqual();
34
+
35
+ let p2=j2.pin(2).getPoint();
36
+ //console.log(p1,p2);
37
+
38
+ let cp=schematic.getConnectionPath(p1,p2);
39
+ expect(cp.length).toEqual(3);
40
+
41
+ //expect(p1.isConnected(p2)).toEqual(true);
42
+
43
+ expect(schematic.sym("J1").pin(1).isConnected(schematic.sym("J2").pin(2))).toEqual(true);
44
+ expect(schematic.sym("J1").pin(1).isConnected(schematic.sym("J2").pin(1))).toEqual(false);
45
+ //console.log(cp);
46
+ });
47
+
48
+ it("can add a connection",async ()=>{
49
+ let schematic=await openSchematic("spec/kitest.kicad_sch",{
50
+ symbolLibraryPath: "/home/micke/Repo.ext/kicad-symbols"
51
+ });
52
+
53
+ let p1=schematic.sym("J1").pin(1).getPoint();
54
+ let p2=schematic.sym("J3").pin(1).getPoint();
55
+
56
+ expect(schematic.arePointsConnected(p1,p2)).toEqual(false);
57
+
58
+ //schematic.addConnectionWire(p1,p2);
59
+ //p1.connect(p2);
60
+ schematic.sym("J1").pin(1).connect(schematic.sym("J3").pin(1));
61
+
62
+ expect(schematic.arePointsConnected(p1,p2)).toEqual(true);
63
+ });
64
+
65
+ it("can handle net labels",async ()=>{
66
+ let schematic=await openSchematic("spec/kitest.kicad_sch",{
67
+ symbolLibraryPath: "/home/micke/Repo.ext/kicad-symbols"
68
+ });
69
+
70
+ let p1=schematic.sym("J2").pin(1).getPoint();
71
+ let entities=schematic.getEntitiesByConnectionPoint(p1);
72
+ //console.log(entities);
73
+
74
+ expect(entities.length).toEqual(2);
75
+ expect(entities.filter(e=>e.getType()=="label")[0].getLabel()).toEqual("5V");
76
+
77
+ expect(schematic.sym("J2").pin(1).isConnected("5V")).toEqual(true);
78
+ expect(schematic.sym("J2").pin(1).isConnected("GND")).toEqual(false);
79
+ expect(schematic.sym("J3").pin(4).isConnected("GND")).toEqual(true);
80
+ expect(schematic.sym("J1").pin(2).isConnected("GND")).toEqual(true);
81
+ //console.log(p1);
82
+
83
+ schematic.sym("J3").pin(1).connect("GND");
84
+ //expect(schematic.sym("J3").pin(1).isConnected("GND")).toEqual(false);
85
+ });
86
+
87
+ it("can get rectangles",async ()=>{
88
+ let schematic=await openSchematic("spec/kitest.kicad_sch",{
89
+ symbolLibraryPath: "/home/micke/Repo.ext/kicad-symbols"
90
+ });
91
+
92
+ let r=schematic.sym("J3").getBoundingRect(); //pin(1).connect("GND");
93
+ //console.log(r);
94
+ });
95
+
96
+ it("can declare symbols",async ()=>{
97
+ let schematic=await openSchematic("spec/kitest.kicad_sch",{
98
+ symbolLibraryPath: "/home/micke/Repo.ext/kicad-symbols"
99
+ });
100
+
101
+ await schematic.use(
102
+ "Connector_Generic:Conn_01x08"
103
+ );
104
+
105
+ schematic.declare("J4",{
106
+ symbol: "Connector_Generic:Conn_01x08"
107
+ });
108
+
109
+ schematic.sym("J4").pin(1).connect("GND");
110
+ schematic.sym("J4").pin(7).connect(schematic.sym("J3").pin(3));
111
+
112
+ expect(schematic.sym("J4").pin(7).isConnected(schematic.sym("J3").pin(3))).toEqual(true);
113
+ expect(schematic.sym("J4").pin(7).isConnected(schematic.sym("J3").pin(2))).toEqual(false);
114
+ });
115
+ });
@@ -0,0 +1,17 @@
1
+ import SymbolLibrary from "../src/SymbolLibrary.js";
2
+
3
+ describe("SymbolLibrary",()=>{
4
+ it("can load a symbl library",async ()=>{
5
+ let lib=new SymbolLibrary("/home/micke/Repo.ext/kicad-symbols");
6
+ let sym=await lib.loadLibrarySymbol("Connector_Generic:Conn_01x04");
7
+
8
+ //console.log(sym);
9
+ //console.log(sym.pins);
10
+
11
+ expect(sym.pins.length).toEqual(4);
12
+ //console.log(sym.getPin(1));
13
+ expect(sym.pins[1].at).toEqual([ -5.08, 0, 0 ]);
14
+
15
+ //console.log(JSON.stringify(sym.pins[0].sexpr,null,2));
16
+ });
17
+ });
@@ -0,0 +1,25 @@
1
+ import {Rect} from "../src/cartesian-math.js";
2
+
3
+ describe("cartesian-math",()=>{
4
+ it("works with rect",()=>{
5
+ let r=new Rect([3,4],[1,2]);
6
+ expect(r.getLeft()).toEqual(3);
7
+ expect(r.getRight()).toEqual(4);
8
+ expect(r.getTop()).toEqual(4);
9
+ expect(r.getBottom()).toEqual(6);
10
+
11
+ let r2=new Rect([3,4],[-1,-3]);
12
+ expect(r2.getLeft()).toEqual(2);
13
+ expect(r2.getRight()).toEqual(3);
14
+ expect(r2.getTop()).toEqual(1);
15
+ expect(r2.getBottom()).toEqual(4);
16
+ });
17
+
18
+ it("rect from corners",()=>{
19
+ let r=Rect.fromCorners([3,4],[7,8]);
20
+ let r2=Rect.fromCorners([2,2],[5,5]);
21
+ expect(r.size).toEqual([4,4]);
22
+
23
+ //console.log(r2.union(r));
24
+ })
25
+ });