Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
238 changes: 238 additions & 0 deletions tests/assets/C2879853.raweasy.json

Large diffs are not rendered by default.

283 changes: 283 additions & 0 deletions tests/assets/C5360621.raweasy.json

Large diffs are not rendered by default.

238 changes: 238 additions & 0 deletions tests/assets/C9900014805.raweasy.json

Large diffs are not rendered by default.

79 changes: 79 additions & 0 deletions tests/convert-to-ts/C2879853-to-ts.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import { it, expect } from "bun:test"
import chipRawEasy from "../assets/C2879853.raweasy.json"
import { convertBetterEasyToTsx } from "lib/websafe/convert-to-typescript-component"
import { EasyEdaJsonSchema } from "lib/schemas/easy-eda-json-schema"
import { runTscircuitCode } from "tscircuit"
import { wrapTsxWithBoardFor3dSnapshot } from "../fixtures/wrap-tsx-with-board-for-3d-snapshot"

it("should convert C2879853 into typescript file", async () => {
const betterEasy = EasyEdaJsonSchema.parse(chipRawEasy)
const result = await convertBetterEasyToTsx({
betterEasy,
})

expect(result).not.toContain("milmm")
expect(result).not.toContain("NaNmm")

const circuitJson = await runTscircuitCode(
wrapTsxWithBoardFor3dSnapshot(result),
)
await expect(circuitJson).toMatch3dSnapshot(import.meta.path)

expect(result).toMatchInlineSnapshot(`
"import type { ChipProps } from "@tscircuit/props"

const pinLabels = {
pin1: ["DATA"],
pin2: ["SELECT"],
pin3: ["GROUND1"],
pin4: ["CLOCK"],
pin5: ["VDD"],
pin6: ["pin3_alt1"],
pin7: ["pin3_alt1"],
pin8: ["pin3_alt1"]
} as const

export const SPH0641LU4H_1 = (props: ChipProps<typeof pinLabels>) => {
return (
<chip
pinLabels={pinLabels}
supplierPartNumbers={{
"jlcpcb": [
"C2879853"
]
}}
manufacturerPartNumber="SPH0641LU4H_1"
footprint={<footprint>
<hole pcbX="0mm" pcbY="-0.7661021mm" diameter="0.5000244mm" />
<smtpad portHints={["pin5"]} pcbX="0.837946mm" pcbY="1.3078079mm" width="0.729996mm" height="0.5299964mm" shape="rect" />
<smtpad portHints={["pin4"]} pcbX="0.837946mm" pcbY="0.4858639mm" width="0.729996mm" height="0.5299964mm" shape="rect" />
<smtpad portHints={["pin2"]} pcbX="-0.837946mm" pcbY="0.4858639mm" width="0.729996mm" height="0.5299964mm" shape="rect" />
<smtpad portHints={["pin1"]} pcbX="-0.837946mm" pcbY="1.3078079mm" width="0.729996mm" height="0.5299964mm" shape="rect" />
<smtpad portHints={["pin3"]} points={[{x: "0.806704mm", y: "-0.6652641mm"}, {x: "0.806704mm", y: "-0.6651117mm"}, {x: "0.800608mm", y: "-0.6246241mm"}, {x: "0.79248mm", y: "-0.5844921mm"}, {x: "0.7823454mm", y: "-0.5447919mm"}, {x: "0.7702296mm", y: "-0.5057013mm"}, {x: "0.756158mm", y: "-0.4672457mm"}, {x: "0.740156mm", y: "-0.4295267mm"}, {x: "0.7222744mm", y: "-0.3926967mm"}, {x: "0.702564mm", y: "-0.3568065mm"}, {x: "0.6810756mm", y: "-0.3219323mm"}, {x: "0.65786mm", y: "-0.2882011mm"}, {x: "0.632968mm", y: "-0.2556891mm"}, {x: "0.6064758mm", y: "-0.2244725mm"}, {x: "0.5784342mm", y: "-0.1946275mm"}, {x: "0.5489194mm", y: "-0.1662303mm"}, {x: "0.518033mm", y: "-0.1393571mm"}, {x: "0.4858258mm", y: "-0.1140841mm"}, {x: "0.452374mm", y: "-0.0904621mm"}, {x: "0.4177792mm", y: "-0.0685419mm"}, {x: "0.3821176mm", y: "-0.0483997mm"}, {x: "0.3454908mm", y: "-0.0300863mm"}, {x: "0.3080004mm", y: "-0.0136271mm"}, {x: "0.2697226mm", y: "0.0009017mm"}, {x: "0.230759mm", y: "0.0135001mm"}, {x: "0.1911858mm", y: "0.0241173mm"}, {x: "0.1511554mm", y: "0.0327279mm"}, {x: "0.110744mm", y: "0.0393065mm"}, {x: "0.110744mm", y: "-0.2624963mm"}, {x: "0.1125474mm", y: "-0.2687193mm"}, {x: "0.110998mm", y: "-0.2750185mm"}, {x: "0.1435354mm", y: "-0.2840609mm"}, {x: "0.1754124mm", y: "-0.2952369mm"}, {x: "0.2064766mm", y: "-0.3084703mm"}, {x: "0.236601mm", y: "-0.3237357mm"}, {x: "0.2656586mm", y: "-0.3409569mm"}, {x: "0.2935224mm", y: "-0.3600323mm"}, {x: "0.3200654mm", y: "-0.3809111mm"}, {x: "0.3451606mm", y: "-0.4034917mm"}, {x: "0.3687318mm", y: "-0.4276725mm"}, {x: "0.390652mm", y: "-0.4533773mm"}, {x: "0.410845mm", y: "-0.4804537mm"}, {x: "0.4292092mm", y: "-0.5088001mm"}, {x: "0.445643mm", y: "-0.5382895mm"}, {x: "0.460121mm", y: "-0.5687949mm"}, {x: "0.4725416mm", y: "-0.6001893mm"}, {x: "0.4828794mm", y: "-0.6323457mm"}, {x: "0.4910836mm", y: "-0.6651117mm"}]} shape="polygon" />
<smtpad portHints={["pin6"]} points={[{x: "0.1008126mm", y: "-1.5728061mm"}, {x: "0.100965mm", y: "-1.5728061mm"}, {x: "0.1414526mm", y: "-1.5667101mm"}, {x: "0.1815846mm", y: "-1.5585821mm"}, {x: "0.2212848mm", y: "-1.5484475mm"}, {x: "0.2603754mm", y: "-1.5363317mm"}, {x: "0.298831mm", y: "-1.5222601mm"}, {x: "0.33655mm", y: "-1.5062581mm"}, {x: "0.37338mm", y: "-1.4883765mm"}, {x: "0.4092702mm", y: "-1.4686661mm"}, {x: "0.4441444mm", y: "-1.4471777mm"}, {x: "0.4778756mm", y: "-1.4239621mm"}, {x: "0.5103876mm", y: "-1.3990701mm"}, {x: "0.5416042mm", y: "-1.3725779mm"}, {x: "0.5714492mm", y: "-1.3445363mm"}, {x: "0.5998464mm", y: "-1.3150215mm"}, {x: "0.6267196mm", y: "-1.2841351mm"}, {x: "0.6519926mm", y: "-1.2519279mm"}, {x: "0.6756146mm", y: "-1.2184761mm"}, {x: "0.6975348mm", y: "-1.1838813mm"}, {x: "0.717677mm", y: "-1.1482197mm"}, {x: "0.7359904mm", y: "-1.1115929mm"}, {x: "0.7524496mm", y: "-1.0741025mm"}, {x: "0.7669784mm", y: "-1.0358247mm"}, {x: "0.7795768mm", y: "-0.9968611mm"}, {x: "0.790194mm", y: "-0.9572879mm"}, {x: "0.7988046mm", y: "-0.9172575mm"}, {x: "0.8053832mm", y: "-0.8768461mm"}, {x: "0.5035804mm", y: "-0.8768461mm"}, {x: "0.4973574mm", y: "-0.8786495mm"}, {x: "0.4910582mm", y: "-0.8771001mm"}, {x: "0.4820158mm", y: "-0.9096375mm"}, {x: "0.4708398mm", y: "-0.9415145mm"}, {x: "0.4576064mm", y: "-0.9725787mm"}, {x: "0.442341mm", y: "-1.0027031mm"}, {x: "0.4251198mm", y: "-1.0317607mm"}, {x: "0.4060444mm", y: "-1.0596245mm"}, {x: "0.3851656mm", y: "-1.0861675mm"}, {x: "0.362585mm", y: "-1.1112627mm"}, {x: "0.3384042mm", y: "-1.1348339mm"}, {x: "0.3126994mm", y: "-1.1567541mm"}, {x: "0.285623mm", y: "-1.1769471mm"}, {x: "0.2572766mm", y: "-1.1953113mm"}, {x: "0.2277872mm", y: "-1.2117451mm"}, {x: "0.1972818mm", y: "-1.2262231mm"}, {x: "0.1658874mm", y: "-1.2386437mm"}, {x: "0.133731mm", y: "-1.2489815mm"}, {x: "0.100965mm", y: "-1.2571857mm"}]} shape="polygon" />
<smtpad portHints={["pin7"]} points={[{x: "-0.806704mm", y: "-0.8669147mm"}, {x: "-0.806704mm", y: "-0.8670163mm"}, {x: "-0.800608mm", y: "-0.9075039mm"}, {x: "-0.79248mm", y: "-0.9476613mm"}, {x: "-0.7823708mm", y: "-0.9873361mm"}, {x: "-0.7702296mm", y: "-1.0264521mm"}, {x: "-0.756158mm", y: "-1.0649077mm"}, {x: "-0.740156mm", y: "-1.1026013mm"}, {x: "-0.7222998mm", y: "-1.1394313mm"}, {x: "-0.7025894mm", y: "-1.1753469mm"}, {x: "-0.681101mm", y: "-1.2101957mm"}, {x: "-0.65786mm", y: "-1.2439269mm"}, {x: "-0.632968mm", y: "-1.2764389mm"}, {x: "-0.6064758mm", y: "-1.3076555mm"}, {x: "-0.5784342mm", y: "-1.3375259mm"}, {x: "-0.5489448mm", y: "-1.3659231mm"}, {x: "-0.518033mm", y: "-1.3927963mm"}, {x: "-0.4858258mm", y: "-1.4180693mm"}, {x: "-0.452374mm", y: "-1.4416913mm"}, {x: "-0.4177792mm", y: "-1.4636115mm"}, {x: "-0.3821176mm", y: "-1.4837537mm"}, {x: "-0.3454908mm", y: "-1.5020671mm"}, {x: "-0.3080004mm", y: "-1.5185263mm"}, {x: "-0.2697226mm", y: "-1.5330551mm"}, {x: "-0.230759mm", y: "-1.5456535mm"}, {x: "-0.1912112mm", y: "-1.5562707mm"}, {x: "-0.1511554mm", y: "-1.5648813mm"}, {x: "-0.110744mm", y: "-1.5714599mm"}, {x: "-0.110744mm", y: "-1.2696571mm"}, {x: "-0.1125474mm", y: "-1.2634087mm"}, {x: "-0.110998mm", y: "-1.2571095mm"}, {x: "-0.1435354mm", y: "-1.2480671mm"}, {x: "-0.1754124mm", y: "-1.2368911mm"}, {x: "-0.2064766mm", y: "-1.2236577mm"}, {x: "-0.236601mm", y: "-1.2083923mm"}, {x: "-0.2656586mm", y: "-1.1911711mm"}, {x: "-0.2935224mm", y: "-1.1720957mm"}, {x: "-0.3200654mm", y: "-1.1512169mm"}, {x: "-0.3451606mm", y: "-1.1286363mm"}, {x: "-0.3687318mm", y: "-1.1044555mm"}, {x: "-0.390652mm", y: "-1.0787507mm"}, {x: "-0.410845mm", y: "-1.0516743mm"}, {x: "-0.4292092mm", y: "-1.0233279mm"}, {x: "-0.445643mm", y: "-0.9938385mm"}, {x: "-0.460121mm", y: "-0.9633331mm"}, {x: "-0.4725416mm", y: "-0.9319387mm"}, {x: "-0.4828794mm", y: "-0.8997823mm"}, {x: "-0.4910836mm", y: "-0.8670163mm"}]} shape="polygon" />
<smtpad portHints={["pin8"]} points={[{x: "-0.100838mm", y: "0.0406019mm"}, {x: "-0.1009904mm", y: "0.0406019mm"}, {x: "-0.1415034mm", y: "0.0345059mm"}, {x: "-0.1816354mm", y: "0.0263779mm"}, {x: "-0.2213102mm", y: "0.0162433mm"}, {x: "-0.2604262mm", y: "0.0041275mm"}, {x: "-0.2988818mm", y: "-0.0099441mm"}, {x: "-0.3365754mm", y: "-0.0259461mm"}, {x: "-0.3734054mm", y: "-0.0438277mm"}, {x: "-0.4092956mm", y: "-0.0635381mm"}, {x: "-0.4441698mm", y: "-0.0850265mm"}, {x: "-0.477901mm", y: "-0.1082421mm"}, {x: "-0.510413mm", y: "-0.1331341mm"}, {x: "-0.5416296mm", y: "-0.1596263mm"}, {x: "-0.5714746mm", y: "-0.1876679mm"}, {x: "-0.5998718mm", y: "-0.2171827mm"}, {x: "-0.626745mm", y: "-0.2480691mm"}, {x: "-0.652018mm", y: "-0.2802763mm"}, {x: "-0.6756654mm", y: "-0.3137281mm"}, {x: "-0.6975602mm", y: "-0.3483229mm"}, {x: "-0.7177024mm", y: "-0.3839845mm"}, {x: "-0.7360158mm", y: "-0.4206113mm"}, {x: "-0.752475mm", y: "-0.4581017mm"}, {x: "-0.7670038mm", y: "-0.4963795mm"}, {x: "-0.7796022mm", y: "-0.5353431mm"}, {x: "-0.7902194mm", y: "-0.5749163mm"}, {x: "-0.79883mm", y: "-0.6149467mm"}, {x: "-0.8054086mm", y: "-0.6553581mm"}, {x: "-0.5036058mm", y: "-0.6553581mm"}, {x: "-0.4973828mm", y: "-0.6535547mm"}, {x: "-0.4910836mm", y: "-0.6551041mm"}, {x: "-0.4820412mm", y: "-0.6225667mm"}, {x: "-0.4708652mm", y: "-0.5906897mm"}, {x: "-0.4576318mm", y: "-0.5596255mm"}, {x: "-0.4423664mm", y: "-0.5295011mm"}, {x: "-0.4251706mm", y: "-0.5004435mm"}, {x: "-0.4060698mm", y: "-0.4725797mm"}, {x: "-0.385191mm", y: "-0.4460367mm"}, {x: "-0.3626104mm", y: "-0.4209415mm"}, {x: "-0.3384296mm", y: "-0.3973703mm"}, {x: "-0.3127248mm", y: "-0.3754501mm"}, {x: "-0.2856484mm", y: "-0.3552571mm"}, {x: "-0.257302mm", y: "-0.3369183mm"}, {x: "-0.2278126mm", y: "-0.3204591mm"}, {x: "-0.1973072mm", y: "-0.3059811mm"}, {x: "-0.1659128mm", y: "-0.2935605mm"}, {x: "-0.1337564mm", y: "-0.2832227mm"}, {x: "-0.1009904mm", y: "-0.2750185mm"}]} shape="polygon" />
<silkscreenpath route={[{"x":-1.3341349999999466,"y":1.6938116999998556},{"x":-1.3999209999999493,"y":1.6938116999998556},{"x":-1.3999209999999493,"y":1.333842900000036}]} />
<silkscreenpath route={[{"x":0.34180780000019695,"y":1.6938116999998556},{"x":-0.34175699999991593,"y":1.6938116999998556}]} />
<silkscreenpath route={[{"x":1.4000226000000566,"y":1.6938116999998556},{"x":1.3342874000002212,"y":1.6938116999998556}]} />
<silkscreenpath route={[{"x":-0.4348987999999281,"y":-1.806054300000028},{"x":-1.3999209999999493,"y":-1.806054300000028},{"x":-1.3999209999999493,"y":-1.4461363000001484}]} />
<silkscreenpath route={[{"x":1.4000226000000566,"y":-1.806054300000028},{"x":0.43474639999999454,"y":-1.806054300000028}]} />
<silkscreenpath route={[{"x":1.4000226000000566,"y":-0.05609590000017306},{"x":1.4000226000000566,"y":1.6938116999998556}]} />
<silkscreenpath route={[{"x":1.4000226000000566,"y":-0.05609590000017306},{"x":1.4000226000000566,"y":-1.806054300000028}]} />
<silkscreenpath route={[{"x":-1.3999209999999493,"y":1.333842900000036},{"x":-1.3999209999999493,"y":-1.4461363000001484}]} />
<silkscreenpath route={[{"x":-0.7299959999998009,"y":2.0139278999999988},{"x":-0.7351110105123553,"y":1.9750755378632903},{"x":-0.7501074625362207,"y":1.9388708999998698},{"x":-0.7739633726488364,"y":1.90778127264889},{"x":-0.8050529999998162,"y":1.8839253625362744},{"x":-0.8412576378632366,"y":1.868928910512409},{"x":-0.8801099999998314,"y":1.8638138999998546},{"x":-0.9189623621364262,"y":1.868928910512409},{"x":-0.9551669999998467,"y":1.8839253625362744},{"x":-0.9862566273509401,"y":1.90778127264889},{"x":-1.0101125374635558,"y":1.9388708999998698},{"x":-1.0251089894873076,"y":1.9750755378632903},{"x":-1.030223999999862,"y":2.0139278999999988},{"x":-1.0251089894873076,"y":2.052780262136366},{"x":-1.0101125374635558,"y":2.0889848999999003},{"x":-0.9862566273509401,"y":2.1200745273509938},{"x":-0.9551669999998467,"y":2.1439304374636095},{"x":-0.9189623621364262,"y":2.1589268894873612},{"x":-0.8801099999998314,"y":2.164041899999802},{"x":-0.8412576378632366,"y":2.1589268894873612},{"x":-0.8050529999998162,"y":2.1439304374636095},{"x":-0.7739633726488364,"y":2.1200745273509938},{"x":-0.7501074625362207,"y":2.0889848999999003},{"x":-0.7351110105123553,"y":2.052780262136366},{"x":-0.7299959999998009,"y":2.0139278999999988}]} />
<silkscreentext text="{NAME}" pcbX="-0.013208mm" pcbY="3.1622639mm" anchorAlignment="center" fontSize="1mm" />
<courtyardoutline outline={[{"x":-1.6602079999998978,"y":2.412263899999971},{"x":1.6337920000001986,"y":2.412263899999971},{"x":1.6337920000001986,"y":-2.050136099999918},{"x":-1.6602079999998978,"y":-2.050136099999918},{"x":-1.6602079999998978,"y":2.412263899999971}]} />
</footprint>}
cadModel={{
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2879853.obj?uuid=587ef2d4cd9c42aca9875a2e1e64e486",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2879853.step?uuid=587ef2d4cd9c42aca9875a2e1e64e486",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0.051790600000003906, z: -0.001 },
}}
{...props}
/>
)
}"
`)
})
Loading
Loading