     struct LaunchCount: StatisticsData {
         public typealias Value = IncrementalValueController
         public static let key = "launchCount"
+    }
+    struct OtherCount: StatisticsData {
+        public typealias Value = IncrementalValueController
+        public static let key = "otherCount"
     }
 }
 

    }
    
    func removeAll() {
        hash.removeAll()
    }
}


        Statistics.version = "1.0.0"
        Statistics.launch(with: backend)
        Statistics.update(Statistics.Data.LaunchCount.self)
        Statistics.update(Statistics.Data.OtherCount.self)
        XCTAssertEqual(Statistics.Data.LaunchCount.value, 1)
        XCTAssertNotNil(Statistics.Data.OtherCount.value)
        
        Statistics.reset(for: Statistics.Data.LaunchCount.self)
        XCTAssertNil(Statistics.Data.LaunchCount.value)
        XCTAssertNotNil(Statistics.Data.OtherCount.value)
    }
    
    func testRemoveDataAll() {
        let backend = MockBackend()
        Statistics.version = "1.0.0"
        Statistics.launch(with: backend)
        backend.write("other", forKey: "otherkey")
        Statistics.update(Statistics.Data.LaunchCount.self)
        XCTAssertEqual(Statistics.Data.LaunchCount.value, 1)
        XCTAssertNotNil(backend.read(forKey: "otherkey") as String?)
        
        Statistics.reset()
        XCTAssertNil(Statistics.Data.LaunchCount.value)
        XCTAssertNotNil(backend.read(forKey: "otherkey") as String?)
    }
}
