[{"data":1,"prerenderedAt":263},["ShallowReactive",2],{"repo-uber-ios-snapshot-test-case-en":3,"i18n-uber-ios-snapshot-test-case-en":260},{"mirrorPool":4,"detail":13,"relatedProjects":119},[5,9],{"key":6,"label":7,"base":8,"type":6},"github","mirror.github","https:\u002F\u002Fgithub.com\u002F",{"key":10,"label":11,"base":12,"type":10},"auto-proxy","mirror.autoProxy","https:\u002F\u002Fgithub.xxlab.tech\u002F",{"owner":14,"repo":15,"repoId":16,"repoUrl":17,"starCount":18,"language":19,"description":20,"languages":21,"screenshots":27,"homepage":28,"pushedAt":29,"ownerAvatar":30,"ownerName":31,"ownerBio":32,"lastSyncTime":33,"lastReleaseTime":34,"tags":35,"license":36,"category":37,"subgroup":38,"releases":39},"uber","ios-snapshot-test-case",114173355,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case",1865,"Objective-C","Snapshot view unit tests for iOS",{"Objective-C":22,"Swift":23,"Shell":24,"Starlark":25,"Ruby":26},87.7,4.9,3.3,2.1,1.9,[],"","2025-12-02","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F538264?v=4","Uber Open Source","Open Source at Uber","2026-10-04T13:16:13.774775+00:00","2021-10-22T03:40:34Z",[],"MIT","development","开发库\u002F框架",[40,52,62,73,83,93,102,110],{"tag":41,"publishAt":34,"semVer":42,"prerelease":45,"assets":46},"8.0.0",[43,44,44],8,0,false,[47],{"fileName":48,"sizeMb":49,"sha256":28,"downloadCount":50,"originUrl":51},"FBSnapshotTestCase.framework.zip",63.84,1112,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F8.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":53,"publishAt":54,"semVer":55,"prerelease":45,"assets":57},"7.0.0","2021-08-24T20:55:38Z",[56,44,44],7,[58],{"fileName":48,"sizeMb":59,"sha256":28,"downloadCount":60,"originUrl":61},63.76,794,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F7.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":63,"publishAt":64,"semVer":65,"prerelease":45,"assets":68},"6.2.0","2019-10-11T23:52:38Z",[66,67,44],6,2,[69],{"fileName":48,"sizeMb":70,"sha256":28,"downloadCount":71,"originUrl":72},67.53,43071,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.2.0\u002FFBSnapshotTestCase.framework.zip",{"tag":74,"publishAt":75,"semVer":76,"prerelease":45,"assets":78},"6.1.0","2019-07-01T17:29:00Z",[66,77,44],1,[79],{"fileName":48,"sizeMb":80,"sha256":28,"downloadCount":81,"originUrl":82},68.2,4814,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.1.0\u002FFBSnapshotTestCase.framework.zip",{"tag":84,"publishAt":85,"semVer":86,"prerelease":45,"assets":88},"6.0.3","2019-04-01T18:58:43Z",[66,44,87],3,[89],{"fileName":48,"sizeMb":90,"sha256":28,"downloadCount":91,"originUrl":92},68.19,14593,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.3\u002FFBSnapshotTestCase.framework.zip",{"tag":94,"publishAt":95,"semVer":96,"prerelease":45,"assets":97},"6.0.2","2019-03-27T00:27:59Z",[66,44,67],[98],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":100,"originUrl":101},68.11,571,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.2\u002FFBSnapshotTestCase.framework.zip",{"tag":103,"publishAt":104,"semVer":105,"prerelease":45,"assets":106},"6.0.0","2019-01-28T19:14:52Z",[66,44,44],[107],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":108,"originUrl":109},1741,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F6.0.0\u002FFBSnapshotTestCase.framework.zip",{"tag":111,"publishAt":112,"semVer":113,"prerelease":45,"assets":115},"5.0.2","2019-01-15T00:59:09Z",[114,44,67],5,[116],{"fileName":48,"sizeMb":99,"sha256":28,"downloadCount":117,"originUrl":118},5031,"https:\u002F\u002Fgithub.com\u002Fuber\u002Fios-snapshot-test-case\u002Freleases\u002Fdownload\u002F5.0.2\u002FFBSnapshotTestCase.framework.zip",[120,155,178,206,224,244],{"owner":121,"repo":122,"repoId":123,"category":37,"subgroup":38,"language":124,"tags":125,"starCount":145,"ownerUid":146,"latestTag":147,"platforms":148,"lastReleaseTime":152,"downloadCount":153,"description":154},"unslothai","unsloth",725205304,"Python",[126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,122],"agent","ai","chatgpt","deepseek","fine-tuning","gemma","image-generation","llama","llm","llms","openai","python","qwen","reinforcement-learning","self-hosted","stable-diffusion","text-to-speech","tts","ui",79329,150920049,"v0.1.917-beta",[149,150,151],"windows","mac","linux","2026-11-11T16:00:56Z",1739,"An open-source library for accelerating large language model (LLM) fine-tuning, significantly reducing VRAM usage and increasing training speed.",{"owner":156,"repo":157,"repoId":158,"category":37,"subgroup":38,"language":124,"tags":159,"starCount":171,"ownerUid":172,"latestTag":173,"platforms":174,"lastReleaseTime":175,"downloadCount":176,"description":177},"openbq-org","OpenBB",323048702,[127,160,161,162,163,164,165,166,167,168,137,169,170],"crypto","derivatives","economics","equity","finance","fixed-income","machine-learning","openbb","options","quantitative-finance","stocks",74466,328144346,"ODP",[149,150],"2026-09-30T01:47:43Z",1099,"OpenBB is an open financial data platform for analysts, quants, and AI agents, aggregating equities, options, crypto, and macro data from multiple sources behind one Python library and REST API — connect once, consume everywhere.",{"owner":179,"repo":180,"repoId":181,"category":37,"subgroup":38,"language":124,"tags":182,"starCount":198,"ownerUid":199,"latestTag":200,"platforms":201,"lastReleaseTime":203,"downloadCount":204,"description":205},"pathwaycom","pathway",571186647,[183,184,185,186,187,188,189,190,191,192,180,137,193,194,195,196,197],"batch-processing","data-analytics","data-pipelines","data-processing","dataflow","etl","etl-framework","iot-analytics","kafka","machine-learning-algorithms","real-time","rust","stream-processing","streaming","time-series-analysis",62092,25750857,"v0.32.1",[202],"other","2026-08-01T09:17:35Z",359,"Pathway is a Python ETL framework that unifies batch and streaming data for stream processing, real-time analytics, LLM pipelines, and RAG, powered by a Rust engine based on Differential Dataflow.",{"owner":207,"repo":208,"repoId":209,"category":37,"subgroup":38,"language":124,"tags":210,"starCount":217,"ownerUid":218,"latestTag":219,"platforms":220,"lastReleaseTime":221,"downloadCount":222,"description":223},"psf","requests",1362490,[211,212,213,214,215,137,216,208],"client","cookies","forhumans","http","humans","python-requests",54522,50630501,"v2.34.2",[202],"2026-05-14T19:27:15Z",1182,"Requests is a simple yet elegant Python HTTP library for sending HTTP\u002F1.1 requests with minimal code, handling query strings, form encoding, cookies, auth, and decompression automatically.",{"owner":225,"repo":226,"repoId":227,"category":37,"subgroup":38,"language":124,"tags":228,"starCount":237,"ownerUid":238,"latestTag":239,"platforms":240,"lastReleaseTime":241,"downloadCount":242,"description":243},"run-llama","llama_index",560704231,[229,230,231,130,232,233,134,234,235,236],"agents","application","data","framework","llamaindex","multi-agents","rag","vector-database",52579,130722866,"v0.14.25",[202],"2026-09-21T16:22:27Z",35,"LlamaIndex is an open-source data framework for LLM applications (Python). It provides data connectors, indices, query engines, and agent orchestration to feed private data into LLMs for building RAG and agent apps.",{"owner":245,"repo":246,"repoId":247,"category":37,"subgroup":38,"language":124,"tags":248,"starCount":253,"ownerUid":254,"latestTag":255,"platforms":256,"lastReleaseTime":257,"downloadCount":258,"description":259},"pandas-dev","pandas",858127,[249,250,251,252,246,137],"alignment","data-analysis","data-science","flexible",50327,21206976,"v3.1.1",[202],"2026-11-04T15:46:25Z",10,"pandas is the most popular Python data analysis and manipulation library, providing labeled data structures (Series and DataFrame) similar to R's data.frame, covering cleaning, alignment, group-by aggregation, and time series for everyday data work.",{"description":261,"readmeHtml":262},"A snapshot testing framework for iOS that validates UI correctness by comparing screenshots of views with reference images.","\u003Ch2 id=\"project-overview\">Project Overview\u003C\u002Fh2>\u003Cp>\u003Ccode>iOSSnapshotTestCase\u003C\u002Fcode> (formerly \u003Ccode>FBSnapshotTestCase\u003C\u002Fcode>) is a snapshot testing framework for iOS. It generates an image snapshot of a configured \u003Ccode>UIView\u003C\u002Fcode> or \u003Ccode>CALayer\u003C\u002Fcode> and compares it to a reference image stored in the repository, failing the test if they don&#39;t match. This addresses the challenge of testing UI code with traditional logic tests.\u003C\u002Fp>\n\u003Ch2 id=\"key-features\">Key Features\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>Snapshot Testing\u003C\u002Fstrong>: Automatically captures and compares view snapshots.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clear Failure Feedback\u003C\u002Fstrong>: Provides image diffs to visually show changes when tests fail.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy Integration\u003C\u002Fstrong>: Supports CocoaPods, Carthage, and Swift Package Manager.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic Naming\u003C\u002Fstrong>: Automatically names reference images based on test class and selector.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"target-audience\">Target Audience\u003C\u002Fh2>\u003Cul>\n\u003Cli>iOS developers\u003C\u002Fli>\n\u003Cli>Teams needing to ensure UI components render correctly under various conditions\u003C\u002Fli>\n\u003Cli>QA engineers looking to automate UI testing\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"quick-start\">Quick Start\u003C\u002Fh2>\u003Col>\n\u003Cli>Add the framework to your project via CocoaPods, Carthage, or Swift Package Manager.\u003C\u002Fli>\n\u003Cli>Set the \u003Ccode>FB_REFERENCE_IMAGE_DIR\u003C\u002Fcode> environment variable in your test scheme to point to the reference image directory.\u003C\u002Fli>\n\u003Cli>Create a test class that subclasses \u003Ccode>FBSnapshotTestCase\u003C\u002Fcode> and call \u003Ccode>FBSnapshotVerifyView\u003C\u002Fcode> in your test method.\u003C\u002Fli>\n\u003Cli>On the first run, enable \u003Ccode>self.recordMode = YES;\u003C\u002Fcode> in the \u003Ccode>setUp\u003C\u002Fcode> method to generate reference images.\u003C\u002Fli>\n\u003Cli>Disable record mode and run the test again for verification.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"core-advantages\">Core Advantages\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>Visual Validation\u003C\u002Fstrong>: Provides intuitive feedback through image diffs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reduced Boilerplate\u003C\u002Fstrong>: Replaces complex rectangle assertions with visual comparison.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Strong Community\u003C\u002Fstrong>: Originated from Uber and Facebook, with a solid community base.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"system-requirements\">System Requirements\u003C\u002Fh2>\u003Cul>\n\u003Cli>OS: iOS, macOS (for testing)\u003C\u002Fli>\n\u003C\u002Ful>\n",1794624078684]