### Question:
TracerSdkProvider implements TracerProvider, TracerSdkManagement { @Override public Tracer get(String instrumentationName) { return tracerSdkComponentRegistry.get(instrumentationName); } private  TracerSdkProvider(Clock clock, IdsGenerator idsGenerator, Resource resource); static Builder builder(); @Override Tracer get(String instrumentationName); @Override Tracer get(String instrumentationName, String instrumentationVersion); @Override TraceConfig getActiveTraceConfig(); @Override void updateActiveTraceConfig(TraceConfig traceConfig); @Override void addSpanProcessor(SpanProcessor spanProcessor); @Override void shutdown(); @Override CompletableResultCode forceFlush();  }### Answer:
@Test void defaultGet() { assertThat(tracerFactory.get("test")).isInstanceOf(TracerSdk.class); }
@Test void getSameInstanceForSameName_WithoutVersion() { assertThat(tracerFactory.get("test")).isSameAs(tracerFactory.get("test")); assertThat(tracerFactory.get("test")).isSameAs(tracerFactory.get("test", null)); }
@Test void getSameInstanceForSameName_WithVersion() { assertThat(tracerFactory.get("test", "version")).isSameAs(tracerFactory.get("test", "version")); }
@Test void propagatesInstrumentationLibraryInfoToTracer() { InstrumentationLibraryInfo expected = InstrumentationLibraryInfo.create("theName", "theVersion"); Tracer tracer = tracerFactory.get(expected.getName(), expected.getVersion()); assertThat(((TracerSdk) tracer).getInstrumentationLibraryInfo()).isEqualTo(expected); }