deepdraft / tests /backend /test_gradio_tools.py
Charles Azam
fix: images in gradio
1a1c419
from pathlib import Path
from deepengineer.backend.gradio_tools import parse_markdown_images
from deepengineer.deepsearch.main_agent import create_output_image_path
markdown = """
# Nuclear Reactor: Structure and Components
A nuclear reactor is a complex system designed to initiate and control a sustained nuclear chain reaction. The primary purpose of a
nuclear reactor is to generate heat through nuclear fission, which is then used to produce electricity. Below is a detailed explanation
of the main components and their functions, along with a simplified diagram.
## Simplified Diagram of a Nuclear Reactor
![Simplified Diagram of a Nuclear Reactor](nuclear_reactor_diagram.png)
## Main Components and Their Functions
### 1. Reactor Core
The reactor core is the central part of the nuclear reactor where nuclear fission occurs. It contains:
- **Nuclear Fuel**: Typically uranium oxide pellets arranged in fuel rods.
- **Control Rods**: Made of materials like cadmium or boron, these rods absorb neutrons and regulate the fission rate.
- **Moderator**: A material (often water) that slows down neutrons to sustain the chain reaction.
### 2. Pressure Vessel
A robust container that houses the reactor core and coolant under high pressure. It ensures the integrity and safety of the reactor core.
### 3. Coolant
A fluid (usually water) that circulates through the core to absorb the heat generated by fission. The heated coolant is then used to
produce steam.
### 4. Steam Generator
The heat from the coolant is transferred to a secondary water loop, which turns into steam. This steam is used to drive turbines.
### 5. Turbine
The steam produced in the steam generator is directed onto the blades of a turbine, causing it to spin. The turbine is connected to a
generator, which produces electricity.
### 6. Cooling Tower
Excess heat that is not converted into electricity is dissipated in the cooling tower. The cooling tower releases this heat into the
atmosphere.
### 7. Containment Structure
A steel-reinforced concrete dome or enclosure that isolates the reactor from the environment. It is designed to contain any radioactive
materials and prevent their release.
## How a Nuclear Reactor Works
1. **Nuclear Fission**: In the reactor core, uranium atoms undergo fission, releasing a significant amount of heat energy.
2. **Heat Transfer**: The coolant absorbs this heat and transfers it to the steam generator.
3. **Steam Production**: In the steam generator, water is converted into steam using the heat from the coolant.
4. **Electricity Generation**: The steam drives the turbine, which is connected to a generator, producing electricity.
5. **Cooling**: Excess heat is dissipated in the cooling tower, and the cycle repeats.
## Sources
- [World Nuclear Association - Nuclear Power
Reactors](https://world-nuclear.org/information-library/nuclear-fuel-cycle/nuclear-power-reactors/nuclear-power-reactors.aspx)
- [Britannica - Nuclear Reactor](https://www.britannica.com/technology/nuclear-reactor)
- [U.S. Department of Energy - How Does a Nuclear Reactor
Work?](https://www.energy.gov/ne/articles/nuclear-101-how-does-nuclear-reactor-work)
- [Wikipedia - Nuclear Reactor](https://en.wikipedia.org/wiki/Nuclear_reactor)
- [BYJU'S - Introduction to Nuclear Reactor](https://byjus.com/physics/nuclear-reactor-based-on-nuclear-fission/)
This simplified diagram and explanation provide a basic understanding of the structure and function of a nuclear reactor.
"""
def test_parse_markdown_images():
image_dir = create_output_image_path(4351840)
real_image_path = image_dir / "nuclear_reactor_diagram.png"
output_image_path = "data/images_4351840/nuclear_reactor_diagram.png"
assert real_image_path.exists()
parsed_markdown = parse_markdown_images(markdown, image_dir)
assert output_image_path in parsed_markdown